diff options
author | Michael Mann <mmann78@netscape.net> | 2016-07-12 13:18:05 -0400 |
---|---|---|
committer | Anders Broman <a.broman58@gmail.com> | 2016-07-14 07:13:06 +0000 |
commit | 18e4e3cdb128798ba6efe6febb868204a0bd95e0 (patch) | |
tree | e2663321b64f0dd40a4d0c7a225655b61fb5185a | |
parent | efc6e509ef55c4eb8de132a44e91660576d1dbb3 (diff) | |
download | wireshark-18e4e3cdb128798ba6efe6febb868204a0bd95e0.tar.gz |
packet-beep.c: Use strtol over scanf to prevent analysis warnings.
Change-Id: I9244edc537d2eb49d73e097a4cb34bf2cde868e4
Reviewed-on: https://code.wireshark.org/review/16395
Reviewed-by: Michael Mann <mmann78@netscape.net>
Petri-Dish: Michael Mann <mmann78@netscape.net>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Anders Broman <a.broman58@gmail.com>
-rw-r--r-- | epan/dissectors/packet-beep.c | 22 |
1 files changed, 6 insertions, 16 deletions
diff --git a/epan/dissectors/packet-beep.c b/epan/dissectors/packet-beep.c index 20dece34d6..1d091eb5c8 100644 --- a/epan/dissectors/packet-beep.c +++ b/epan/dissectors/packet-beep.c @@ -29,6 +29,7 @@ #include "config.h" #include <stdio.h> +#include <stdlib.h> #include <epan/packet.h> #include <epan/prefs.h> #include <epan/conversation.h> @@ -382,25 +383,14 @@ dissect_beep_int(tvbuff_t *tvb, int offset, { proto_item *hidden_item; int ival, ind = 0; - unsigned int i = num_len(tvb, offset); - guint8 int_buff[100]; + unsigned int len = num_len(tvb, offset); - memset(int_buff, '\0', sizeof(int_buff)); - - tvb_memcpy(tvb, int_buff, offset, MIN(sizeof(int_buff) - 1, i)); - - /* XXX - is this still "Dangerous" now that we don't copy to the - last byte of "int_buff[]"? */ - if (sscanf((gchar*)int_buff, "%d", &ival) != 1) - ival = 0; /* Should we signal an error? */ - - if (tree) { - proto_tree_add_uint(tree, hf, tvb, offset, i, ival); - } + ival = strtol(tvb_get_string_enc(wmem_packet_scope(), tvb, offset, len, ENC_ASCII), NULL, 10); + proto_tree_add_uint(tree, hf, tvb, offset, len, ival); while (hfa[ind]) { - hidden_item = proto_tree_add_uint(tree, *hfa[ind], tvb, offset, i, ival); + hidden_item = proto_tree_add_uint(tree, *hfa[ind], tvb, offset, len, ival); PROTO_ITEM_SET_HIDDEN(hidden_item); ind++; @@ -408,7 +398,7 @@ dissect_beep_int(tvbuff_t *tvb, int offset, *val = ival; /* Return the value */ - return i; + return len; } |