diff options
author | Guy Harris <guy@alum.mit.edu> | 2004-12-31 03:10:11 +0000 |
---|---|---|
committer | Guy Harris <guy@alum.mit.edu> | 2004-12-31 03:10:11 +0000 |
commit | d9f4b6c9ebd4bbd7f053add616caf008df264cb0 (patch) | |
tree | 02e712a78d177d07d3d1d9a20dd2d1b5f483aa2a /epan | |
parent | 29c1d25ddc73deed86e3af46b635a249c29e9e33 (diff) |
There are no guarantees that "strncasecmp()" works with
non-null-terminated strings, so be safe and fetch the metatag string
with "tvb_get_string()".
svn path=/trunk/; revision=12896
Diffstat (limited to 'epan')
-rw-r--r-- | epan/dissectors/packet-edonkey.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/epan/dissectors/packet-edonkey.c b/epan/dissectors/packet-edonkey.c index bb8c9db00b..5ac4e82d24 100644 --- a/epan/dissectors/packet-edonkey.c +++ b/epan/dissectors/packet-edonkey.c @@ -288,13 +288,15 @@ gint lookup_str_index(gchar* str, gint length, const value_string *vs) static guint8 edonkey_metatag_name_get_type(tvbuff_t *tvb, gint start, gint length, guint8 special_tagtype) { - guchar *tag_name; + guint8 *tag_name; + tag_name = match_strval(special_tagtype, edonkey_special_tags); if (tag_name == NULL) { gint index; - tag_name = (guchar*) tvb_get_ptr(tvb, start, length); + tag_name = tvb_get_string(tvb, start, length); index = lookup_str_index(tag_name, length, edonkey_special_tags); - if (index < 0) + g_free(tag_name); + if (index < 0) return EDONKEY_STAG_UNKNOWN; else return edonkey_special_tags[index].value; } |