aboutsummaryrefslogtreecommitdiffstats
path: root/extcap/androiddump.c
diff options
context:
space:
mode:
authorMikael Kanstrup <mikael.kanstrup@gmail.com>2018-03-26 10:41:00 +0200
committerRoland Knall <rknall@gmail.com>2018-03-26 14:42:03 +0000
commit789db1f15de6238c7b7b00662aeaedf8189eb962 (patch)
tree150db2bd1ba55a7c80281ebf24b904b0362e7955 /extcap/androiddump.c
parent69d080700d924339b5807ac5a87f57fc281f44b3 (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.c14
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);
}