Wireshark-bugs: [Wireshark-bugs] [Bug 12080] New: androiddump: Process stuck at 100% CPU load if

Date: Thu, 04 Feb 2016 20:18:02 +0000
Bug ID 12080
Summary androiddump: Process stuck at 100% CPU load if tcpdump interface is not available.
Product Wireshark
Version Git
Hardware x86
OS Ubuntu
Status UNCONFIRMED
Severity Normal
Priority Low
Component Extras
Assignee [email protected]
Reporter [email protected]

Build Information:
Version 2.1.0 (v2.1.0rc0-1756-gad5c37c from master)

Copyright 1998-2016 Gerald Combs <[email protected]> and contributors.
License GPLv2+: GNU GPL version 2 or later
<http://www.gnu.org/licenses/old-licenses/gpl-2.0.html>
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Compiled (64-bit) with Qt 5.2.1, with libpcap, with POSIX capabilities (Linux),
with libnl 3, with libz 1.2.8, with GLib 2.40.2, with SMI 0.4.8, with c-ares
1.10.0, with Lua 5.2, with GnuTLS 2.12.23, with Gcrypt 1.5.3, with MIT
Kerberos,
with GeoIP, with QtMultimedia, without AirPcap.

Running on Linux 3.16.0-59-generic, with locale C, with libpcap version 1.5.3,
with libz 1.2.8, with GnuTLS 2.12.23, with Gcrypt 1.5.3.
Intel(R) Core(TM) i7-4600U CPU @ 2.10GHz (with SSE4.2)

Built using gcc 4.8.4.

--
The androiddump process get stuck at 100% CPU load if you choose to capture
over the wifi-tcpdump interface and tcpdump util is not available on the phone
(for example connecting an Android phone with non-root shell).

The androiddump process is kept running even after shutting down Wireshark.

The same problem occurs also if you disconnect the phone while having a packet
capture running.

Attaching gdb to the androiddump process give the following backtrace:
#0  0x00007fc2e99d478d in __libc_recv (fd=fd@entry=3, 
    buf=buf@entry=0x6083e0 <data>, n=n@entry=65332, flags=-1, flags@entry=0)
    at ../sysdeps/unix/sysv/linux/x86_64/recv.c:29
#1  0x0000000000401fb4 in recv (__flags=0, __n=65332, __buf=0x6083e0 <data>, 
    __fd=3) at /usr/include/x86_64-linux-gnu/bits/socket2.h:44
#2  capture_android_wifi_tcpdump (interface=<optimized out>, 
    interface@entry=0x7ffd5b74b272 "android-wifi-tcpdump-YT910RXZ90", 
    fifo=fifo@entry=0x7ffd5b74b299
"/tmp/wireshark_extcap_20160204204947_FgL2ks",
adb_server_ip=adb_server_ip@entry=0x406345 "127.0.0.1", 
    adb_server_tcp_port=adb_server_tcp_port@entry=0x7ffd5b74a4ac)
    at extcap/androiddump.c:2366
#3  0x000000000040277a in main (argc=6, argv=0x7ffd5b74a628)
    at extcap/androiddump.c:2574

Single stepped with gdb to the length check in androiddump.c file (line 2375)
and printed errno and length

errno = 0
length (optimized out so had to check rax register) = 0

This condition seems to repeat forever making it stuck in the "while
(endless_loop)".


You are receiving this mail because:
  • You are watching all bug changes.