aboutsummaryrefslogtreecommitdiffstats
path: root/epan
diff options
context:
space:
mode:
authorGuy Harris <guy@alum.mit.edu>2014-04-09 01:04:37 -0700
committerGuy Harris <guy@alum.mit.edu>2014-04-09 08:05:07 +0000
commit7d83a8755a20579ec7d6b98b341ae17d8cb6bf65 (patch)
tree2ba6123af90a2a402000239de17f879b6d26a801 /epan
parent412c6cabcfd96efeae6c13f1e918d99be002eaf8 (diff)
Don't use tvb_get_nstringz0(), use tvb_get_string_enc().
Change-Id: I8e654fa857fca6713198e3d20f2a14a0a444e935 Reviewed-on: https://code.wireshark.org/review/1037 Reviewed-by: Guy Harris <guy@alum.mit.edu>
Diffstat (limited to 'epan')
-rw-r--r--epan/dissectors/packet-aim-buddylist.c8
-rw-r--r--epan/dissectors/packet-aim-chat.c10
-rw-r--r--epan/dissectors/packet-aim-messaging.c5
-rw-r--r--epan/dissectors/packet-aim-signon.c4
-rw-r--r--epan/dissectors/packet-aim.c9
-rw-r--r--epan/dissectors/packet-aim.h4
6 files changed, 16 insertions, 24 deletions
diff --git a/epan/dissectors/packet-aim-buddylist.c b/epan/dissectors/packet-aim-buddylist.c
index 26d81f66f8..27de2a2b48 100644
--- a/epan/dissectors/packet-aim-buddylist.c
+++ b/epan/dissectors/packet-aim-buddylist.c
@@ -76,9 +76,9 @@ static int dissect_aim_buddylist_reject(tvbuff_t *tvb, packet_info *pinfo, proto
static int dissect_aim_buddylist_oncoming(tvbuff_t *tvb, packet_info *pinfo, proto_tree *buddy_tree)
{
- guchar buddyname[MAX_BUDDYNAME_LENGTH+1];
+ guint8 *buddyname;
int offset = 0;
- int buddyname_length = aim_get_buddyname( buddyname, tvb, offset, offset + 1 );
+ int buddyname_length = aim_get_buddyname( &buddyname, tvb, offset );
col_set_str(pinfo->cinfo, COL_INFO, "Oncoming Buddy");
col_append_fstr(pinfo->cinfo, COL_INFO, ": %s",
@@ -99,9 +99,9 @@ static int dissect_aim_buddylist_oncoming(tvbuff_t *tvb, packet_info *pinfo, pro
static int dissect_aim_buddylist_offgoing(tvbuff_t *tvb, packet_info *pinfo, proto_tree *buddy_tree)
{
- guchar buddyname[MAX_BUDDYNAME_LENGTH+1];
+ guint8 *buddyname;
int offset = 0;
- int buddyname_length = aim_get_buddyname( buddyname, tvb, offset, offset + 1 );
+ int buddyname_length = aim_get_buddyname( &buddyname, tvb, offset );
col_set_str(pinfo->cinfo, COL_INFO, "Offgoing Buddy");
col_append_fstr(pinfo->cinfo, COL_INFO, ": %s",
diff --git a/epan/dissectors/packet-aim-chat.c b/epan/dissectors/packet-aim-chat.c
index 9347b5990e..a0ff6e592f 100644
--- a/epan/dissectors/packet-aim-chat.c
+++ b/epan/dissectors/packet-aim-chat.c
@@ -81,13 +81,12 @@ static int dissect_aim_chat_userinfo_list(tvbuff_t *tvb, packet_info *pinfo, pro
static int dissect_aim_chat_outgoing_msg(tvbuff_t *tvb, packet_info *pinfo, proto_tree *chat_tree _U_)
{
- guchar *buddyname;
+ guint8 *buddyname;
guchar *msg;
int buddyname_length;
- buddyname=(guchar *)wmem_alloc(wmem_packet_scope(), MAX_BUDDYNAME_LENGTH+1);
msg=(guchar *)wmem_alloc(wmem_packet_scope(), 1000);
- buddyname_length = aim_get_buddyname( buddyname, tvb, 30, 31 );
+ buddyname_length = aim_get_buddyname( &buddyname, tvb, 30 );
/* channel message from client */
aim_get_message( msg, tvb, 40 + buddyname_length, tvb_length(tvb)
@@ -101,14 +100,13 @@ static int dissect_aim_chat_outgoing_msg(tvbuff_t *tvb, packet_info *pinfo, prot
static int dissect_aim_chat_incoming_msg(tvbuff_t *tvb, packet_info *pinfo, proto_tree *chat_tree)
{
- guchar *buddyname;
+ guint8 *buddyname;
guchar *msg;
/* channel message to client */
int buddyname_length;
- buddyname=(guchar *)wmem_alloc(wmem_packet_scope(), MAX_BUDDYNAME_LENGTH+1);
msg=(guchar *)wmem_alloc(wmem_packet_scope(), 1000);
- buddyname_length = aim_get_buddyname( buddyname, tvb, 30, 31 );
+ buddyname_length = aim_get_buddyname( &buddyname, tvb, 30 );
aim_get_message( msg, tvb, 36 + buddyname_length, tvb_length(tvb)
- 36 - buddyname_length );
diff --git a/epan/dissectors/packet-aim-messaging.c b/epan/dissectors/packet-aim-messaging.c
index 2a85d62728..ed7d917086 100644
--- a/epan/dissectors/packet-aim-messaging.c
+++ b/epan/dissectors/packet-aim-messaging.c
@@ -320,7 +320,7 @@ dissect_aim_msg_outgoing(tvbuff_t *tvb, packet_info *pinfo, proto_tree *msg_tree
int offset = 0;
const aim_tlv *aim_ch_tlvs = NULL;
guint16 channel_id;
- guchar buddyname[MAX_BUDDYNAME_LENGTH+1];
+ guint8 *buddyname;
int buddyname_length;
/* ICBM Cookie */
@@ -334,8 +334,7 @@ dissect_aim_msg_outgoing(tvbuff_t *tvb, packet_info *pinfo, proto_tree *msg_tree
offset += 2;
/* Add the outgoing username to the info column */
- buddyname_length = aim_get_buddyname(buddyname, tvb, offset,
- offset + 1);
+ buddyname_length = aim_get_buddyname(&buddyname, tvb, offset);
col_append_fstr(pinfo->cinfo, COL_INFO, " to: %s",
format_text(buddyname, buddyname_length));
diff --git a/epan/dissectors/packet-aim-signon.c b/epan/dissectors/packet-aim-signon.c
index 31df91f1b6..8144d1130d 100644
--- a/epan/dissectors/packet-aim-signon.c
+++ b/epan/dissectors/packet-aim-signon.c
@@ -73,7 +73,7 @@ static int dissect_aim_snac_signon_signon(tvbuff_t *tvb, packet_info *pinfo,
{
guint8 buddyname_length = 0;
int offset = 0;
- guchar buddyname[MAX_BUDDYNAME_LENGTH + 1];
+ guint8 *buddyname;
/* Info Type */
proto_tree_add_item(tree, hf_aim_infotype, tvb, offset, 2, ENC_BIG_ENDIAN);
@@ -83,7 +83,7 @@ static int dissect_aim_snac_signon_signon(tvbuff_t *tvb, packet_info *pinfo,
offset += 1;
/* Buddy Name */
- buddyname_length = aim_get_buddyname( buddyname, tvb, offset, offset + 1 );
+ buddyname_length = aim_get_buddyname( &buddyname, tvb, offset );
col_append_fstr(pinfo->cinfo, COL_INFO, " Username: %s",
format_text(buddyname, buddyname_length));
diff --git a/epan/dissectors/packet-aim.c b/epan/dissectors/packet-aim.c
index db17e5f41f..c78f0e4dd4 100644
--- a/epan/dissectors/packet-aim.c
+++ b/epan/dissectors/packet-aim.c
@@ -493,16 +493,13 @@ const aim_family
}
int
-aim_get_buddyname( guchar *name, tvbuff_t *tvb, int len_offset, int name_offset)
+aim_get_buddyname( guint8 **name, tvbuff_t *tvb, int offset)
{
guint8 buddyname_length;
- buddyname_length = tvb_get_guint8(tvb, len_offset);
-
- if(buddyname_length > MAX_BUDDYNAME_LENGTH )
- buddyname_length = MAX_BUDDYNAME_LENGTH;
+ buddyname_length = tvb_get_guint8(tvb, offset);
- tvb_get_nstringz0(tvb, name_offset, buddyname_length + 1, name);
+ *name = tvb_get_string_enc(wmem_packet_scope(), tvb, offset + 1, buddyname_length, ENC_UTF_8|ENC_NA);
return buddyname_length;
}
diff --git a/epan/dissectors/packet-aim.h b/epan/dissectors/packet-aim.h
index 1c50d471f5..a03a157d5d 100644
--- a/epan/dissectors/packet-aim.h
+++ b/epan/dissectors/packet-aim.h
@@ -26,8 +26,6 @@
/* For e_uuid_t */
#include "packet-dcerpc.h"
-#define MAX_BUDDYNAME_LENGTH 30
-
typedef struct _aim_tlv {
guint16 valueid;
const char *desc;
@@ -53,7 +51,7 @@ void aim_init_family(int proto, int ett, guint16 family, const aim_subtype *subt
int dissect_aim_buddyname(tvbuff_t *tvb, packet_info *pinfo, int offset, proto_tree *tree);
void aim_get_message( guchar *msg, tvbuff_t *tvb, int msg_offset, int msg_length);
-int aim_get_buddyname( guchar *name, tvbuff_t *tvb, int len_offset, int name_offset);
+int aim_get_buddyname( guint8 **name, tvbuff_t *tvb, int offset);
int dissect_aim_userinfo(tvbuff_t *tvb, packet_info *pinfo, int offset, proto_tree *tree);
int dissect_aim_snac_error(tvbuff_t *tvb, packet_info *pinfo, proto_tree *aim_tree);