diff options
author | Mikael Kanstrup <mikael.kanstrup@gmail.com> | 2018-03-26 10:41:00 +0200 |
---|---|---|
committer | Roland Knall <rknall@gmail.com> | 2018-03-26 14:42:03 +0000 |
commit | 789db1f15de6238c7b7b00662aeaedf8189eb962 (patch) | |
tree | 150db2bd1ba55a7c80281ebf24b904b0362e7955 /extcap/androiddump.c | |
parent | 69d080700d924339b5807ac5a87f57fc281f44b3 (diff) |
androiddump: Fix btsnoop net port lookup
Code assumes btsnoop net port is the first tcp socket found in
/proc/<pid>/net/tcp. If it is not the port number lookup will
fail.
Fixed by searching all open tcp sockets for a match.
Change-Id: I988fe18680600b59c595f3d619d95c72c1a6966d
Reviewed-on: https://code.wireshark.org/review/26651
Petri-Dish: Roland Knall <rknall@gmail.com>
Tested-by: Petri Dish Buildbot
Reviewed-by: Roland Knall <rknall@gmail.com>
Diffstat (limited to 'extcap/androiddump.c')
-rw-r--r-- | extcap/androiddump.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/extcap/androiddump.c b/extcap/androiddump.c index 90a861f130..8b55b0b5ae 100644 --- a/extcap/androiddump.c +++ b/extcap/androiddump.c @@ -1225,11 +1225,15 @@ static int register_interfaces(extcap_parameters * extcap_conf, const char *adb_ disable_interface = 1; } else { response[data_length] = '\0'; - - data_str = strchr(response, '\n'); - if (data_str && sscanf(data_str, "%*s %15s", pid) == 1 && strlen(pid) > 10 && strcmp(pid + 9, "22A8") == 0) { - g_debug("Btsnoop Net Port for %s is %s", serial_number, pid + 9); - } else { + data_str = strtok(response, "\n"); + while (data_str != NULL) { + if (data_str && sscanf(data_str, "%*s %15s", pid) == 1 && strlen(pid) > 10 && strcmp(pid + 9, "22A8") == 0) { + g_debug("Btsnoop Net Port for %s is %s", serial_number, pid + 9); + break; + } + data_str = strtok(NULL, "\n"); + } + if (data_str == NULL) { disable_interface = 1; g_debug("Btsnoop Net Port for %s is unknown", serial_number); } |