aboutsummaryrefslogtreecommitdiffstats
path: root/epan
diff options
context:
space:
mode:
authorGuy Harris <guy@alum.mit.edu>2004-12-31 03:10:11 +0000
committerGuy Harris <guy@alum.mit.edu>2004-12-31 03:10:11 +0000
commitd9f4b6c9ebd4bbd7f053add616caf008df264cb0 (patch)
tree02e712a78d177d07d3d1d9a20dd2d1b5f483aa2a /epan
parent29c1d25ddc73deed86e3af46b635a249c29e9e33 (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.c8
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;
}