diff options
author | Alexis La Goutte <alexis.lagoutte@gmail.com> | 2015-04-09 22:36:13 +0200 |
---|---|---|
committer | Michael Mann <mmann78@netscape.net> | 2015-04-09 23:13:47 +0000 |
commit | 10e20531d327b8baa2d9ab932eb7564dc3b8ffd9 (patch) | |
tree | b57f98fc9566f13f4322a4eeee86cff629c7d7be /extcap | |
parent | dc4345b4d104bc79873a6b290a22f5b1a0cd76ea (diff) | |
download | wireshark-10e20531d327b8baa2d9ab932eb7564dc3b8ffd9.tar.gz wireshark-10e20531d327b8baa2d9ab932eb7564dc3b8ffd9.tar.bz2 wireshark-10e20531d327b8baa2d9ab932eb7564dc3b8ffd9.zip |
Androiddump: fix Potential leak of memory pointed to by 'serial_number'
Change-Id: Ib244ec9a94d99a3589d411a4e3bcb1b03212b82e
Reviewed-on: https://code.wireshark.org/review/7987
Reviewed-by: Michal Labedzki <michal.labedzki@tieto.com>
Reviewed-by: Michael Mann <mmann78@netscape.net>
Diffstat (limited to 'extcap')
-rw-r--r-- | extcap/androiddump.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/extcap/androiddump.c b/extcap/androiddump.c index 088e31dcf8..933b2fa358 100644 --- a/extcap/androiddump.c +++ b/extcap/androiddump.c @@ -482,7 +482,7 @@ static int add_android_interfaces(struct interface_t **interface_list, const char *adb_api_level = "0022""shell:getprop ro.build.version.sdk"; const char *adb_hcidump_version = "0017""shell:hcidump --version"; const char *adb_ps_droid_bluetooth = "0018""shell:ps droid.bluetooth"; - char *serial_number; + char serial_number[512]; int result; char *interface_name; char *pos; @@ -510,10 +510,13 @@ static int add_android_interfaces(struct interface_t **interface_list, prev_pos = pos; pos = strchr(pos, '\t'); result = (int) (pos - prev_pos); - serial_number = (char *) malloc(result + 1); + pos = strchr(pos, '\n') + 1; + if (result > (int) sizeof(serial_number)) { + fprintf(stderr, "WARNING: Serial number too long, ignore device\n"); + continue; + } memcpy(serial_number, prev_pos, result); serial_number[result] = '\0'; - pos = strchr(pos, '\n') + 1; sock = adb_connect(adb_server_ip, adb_server_tcp_port); |