From 7d83a8755a20579ec7d6b98b341ae17d8cb6bf65 Mon Sep 17 00:00:00 2001 From: Guy Harris Date: Wed, 9 Apr 2014 01:04:37 -0700 Subject: 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 --- epan/dissectors/packet-aim-buddylist.c | 8 ++++---- epan/dissectors/packet-aim-chat.c | 10 ++++------ epan/dissectors/packet-aim-messaging.c | 5 ++--- epan/dissectors/packet-aim-signon.c | 4 ++-- epan/dissectors/packet-aim.c | 9 +++------ epan/dissectors/packet-aim.h | 4 +--- 6 files changed, 16 insertions(+), 24 deletions(-) (limited to 'epan') 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); -- cgit v1.2.3