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>
This commit is contained in:
Alexis La Goutte 2015-04-09 22:36:13 +02:00 committed by Michael Mann
parent dc4345b4d1
commit 10e20531d3
1 changed files with 6 additions and 3 deletions

View File

@ -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);