ANNOUNCEMENT: Live Wireshark University & Allegro Packets online APAC Wireshark Training Session
July 17th, 2024 | 10:00am-11:55am SGT (UTC+8) | Online

Wireshark-bugs: [Wireshark-bugs] [Bug 12955] New: Interface list issues after system sleep/resum

Date: Tue, 27 Sep 2016 12:54:16 +0000
Bug ID 12955
Summary Interface list issues after system sleep/resume (duplicate entries, double-free)
Product Wireshark
Version Git
Hardware x86-64
OS Linux (other)
Status UNCONFIRMED
Severity Major
Priority Low
Component Qt UI
Assignee [email protected]
Reporter [email protected]

Build Information:
Wireshark 2.3.0 (v2.3.0rc0-820-g8b04755 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.7.0, with libpcap, with POSIX capabilities (Linux),
with libnl 3, with GLib 2.48.2, with zlib 1.2.8, without SMI, with c-ares
1.11.0, with Lua 5.2.4, with GnuTLS 3.4.15, with Gcrypt 1.7.3, with MIT
Kerberos, with GeoIP, with QtMultimedia, without AirPcap.

Running on Linux 4.7.2-1-ARCH, with Intel(R) Core(TM) i7-6700HQ CPU @ 2.60GHz
(with SSE4.2), with 31996 MB of physical memory, with locale en_GB.UTF-8, with
libpcap version 1.7.4, with GnuTLS 3.4.15, with Gcrypt 1.7.3, with zlib 1.2.8.

Built using gcc 6.2.1 20160830.

--
At times I have experienced the problem of duplicate interfaces in the
interfaces list after resuming from system sleep while Wireshark is open (idle,
not capturing).

To reproduce:
 1. Open Wireshark
 2. System sleep and resume

Expected result:
Sane number of interfaces (no duplicates).

Actual result:
A number of duplicates for every interface, after two sleep/resume I see 10 and
13 duplicates of each interface (Wireshark 2.0.5 and git master respectively).
any, bluetooth-monitor, bluetooth0, dbus-session, dbus-system, eth0, he6, lo,
nflog, nfqueue, usbmon*, wlan0.
Wireshark 2.0.5 had no extcap interfaces, git master also has a number of
extcap interfaces (cisco, randpkt, ssh, udp, a custom ssh-tcpdump).

I also got this double-free for git master (not always reproducible, maybe a
race condition):

==31972==ERROR: AddressSanitizer: attempting double-free on 0x6060000d5fe0 in
thread T0:
    #0 0x7fa5f90e4b00 in __interceptor_free
/build/gcc-multilib/src/gcc/libsanitizer/asan/asan_malloc_linux.cc:45
    #1 0x55f7c93f67f4 in scan_local_interfaces ui/iface_lists.c:144
    #2 0x55f7c88cd83a in WiresharkApplication::refreshLocalInterfaces()
ui/qt/wireshark_application.cpp:893
    #3 0x55f7c88cd754 in iface_mon_event_cb ui/qt/wireshark_application.cpp:867
    #4 0x55f7c9497ca2 in iface_mon_handler2 caputils/iface_monitor.c:113
    #5 0x7fa5e3aac08d  (/usr/lib/libnl-3.so.200+0xf08d)
    #6 0x7fa5e3cddeff  (/usr/lib/libnl-route-3.so.200+0x1feff)
    #7 0x7fa5e3aa9112 in nl_cache_parse (/usr/lib/libnl-3.so.200+0xc112)
    #8 0x7fa5e3aad9fa in nl_msg_parse (/usr/lib/libnl-3.so.200+0x109fa)
    #9 0x55f7c9497cdd in iface_mon_handler caputils/iface_monitor.c:123
    #10 0x7fa5e3aaf38b in nl_recvmsgs_report (/usr/lib/libnl-3.so.200+0x1238b)
    #11 0x7fa5e3aaf7c8 in nl_recvmsgs (/usr/lib/libnl-3.so.200+0x127c8)
    #12 0x55f7c9497cf7 in iface_mon_event caputils/iface_monitor.c:130
    #13 0x55f7c88cd81c in WiresharkApplication::ifChangeEventsAvailable()
ui/qt/wireshark_application.cpp:883
    #14 0x55f7c8b1ed03 in WiresharkApplication::qt_static_metacall(QObject*,
QMetaObject::Call, int, void**) ui/qt/moc_wireshark_application.cpp:228
    #15 0x7fa5e26e34e8 in QMetaObject::activate(QObject*, int, int, void**)
(/usr/lib/libQt5Core.so.5+0x2b24e8)
    #16 0x7fa5e275dc6d in QSocketNotifier::activated(int,
QSocketNotifier::QPrivateSignal) (/usr/lib/libQt5Core.so.5+0x32cc6d)
    #17 0x7fa5e26f0191 in QSocketNotifier::event(QEvent*)
(/usr/lib/libQt5Core.so.5+0x2bf191)
    #18 0x7fa5e3397e3b in QApplicationPrivate::notify_helper(QObject*, QEvent*)
(/usr/lib/libQt5Widgets.so.5+0x153e3b)
    #19 0x7fa5e339f5b0 in QApplication::notify(QObject*, QEvent*)
(/usr/lib/libQt5Widgets.so.5+0x15b5b0)
    #20 0x7fa5e26b7c7f in QCoreApplication::notifyInternal2(QObject*, QEvent*)
(/usr/lib/libQt5Core.so.5+0x286c7f)
    #21 0x7fa5e270ca2c  (/usr/lib/libQt5Core.so.5+0x2dba2c)
    #22 0x7fa5f87dce66 in g_main_context_dispatch
(/usr/lib/libglib-2.0.so.0+0x49e66)
    #23 0x7fa5f87dd0cf  (/usr/lib/libglib-2.0.so.0+0x4a0cf)
    #24 0x7fa5f87dd17b in g_main_context_iteration
(/usr/lib/libglib-2.0.so.0+0x4a17b)
    #25 0x7fa5e270c57e in
QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)
(/usr/lib/libQt5Core.so.5+0x2db57e)
    #26 0x55f7c81df292 in main_window_update wireshark-qt.cpp:131
    #27 0x55f7c948efab in sync_pipe_open_command capchild/capture_sync.c:916
    #28 0x55f7c948f34d in sync_pipe_run_command_actual
capchild/capture_sync.c:978
    #29 0x55f7c94903b7 in sync_pipe_run_command capchild/capture_sync.c:1156
    #30 0x55f7c9490cac in sync_interface_list_open capchild/capture_sync.c:1260
    #31 0x55f7c94899a2 in capture_interface_list capchild/capture_ifinfo.c:112
    #32 0x55f7c93f6819 in scan_local_interfaces ui/iface_lists.c:145
    #33 0x55f7c88cd83a in WiresharkApplication::refreshLocalInterfaces()
ui/qt/wireshark_application.cpp:893
    #34 0x55f7c88cd754 in iface_mon_event_cb
ui/qt/wireshark_application.cpp:867
    #35 0x55f7c9497ca2 in iface_mon_handler2 caputils/iface_monitor.c:113
    #36 0x7fa5e3aac08d  (/usr/lib/libnl-3.so.200+0xf08d)
    #37 0x7fa5e3cddeff  (/usr/lib/libnl-route-3.so.200+0x1feff)
    #38 0x7fa5e3aa9112 in nl_cache_parse (/usr/lib/libnl-3.so.200+0xc112)
    #39 0x7fa5e3aad9fa in nl_msg_parse (/usr/lib/libnl-3.so.200+0x109fa)
    #40 0x55f7c9497cdd in iface_mon_handler caputils/iface_monitor.c:123
    #41 0x7fa5e3aaf38b in nl_recvmsgs_report (/usr/lib/libnl-3.so.200+0x1238b)
    #42 0x7fa5e3aaf7c8 in nl_recvmsgs (/usr/lib/libnl-3.so.200+0x127c8)
    #43 0x55f7c9497cf7 in iface_mon_event caputils/iface_monitor.c:130
    #44 0x55f7c88cd81c in WiresharkApplication::ifChangeEventsAvailable()
ui/qt/wireshark_application.cpp:883
    #45 0x55f7c8b1ed03 in WiresharkApplication::qt_static_metacall(QObject*,
QMetaObject::Call, int, void**) ui/qt/moc_wireshark_application.cpp:228
    #46 0x7fa5e26e34e8 in QMetaObject::activate(QObject*, int, int, void**)
(/usr/lib/libQt5Core.so.5+0x2b24e8)
    #47 0x7fa5e275dc6d in QSocketNotifier::activated(int,
QSocketNotifier::QPrivateSignal) (/usr/lib/libQt5Core.so.5+0x32cc6d)
    #48 0x7fa5e26f0191 in QSocketNotifier::event(QEvent*)
(/usr/lib/libQt5Core.so.5+0x2bf191)
    #49 0x7fa5e3397e3b in QApplicationPrivate::notify_helper(QObject*, QEvent*)
(/usr/lib/libQt5Widgets.so.5+0x153e3b)
    #50 0x7fa5e339f5b0 in QApplication::notify(QObject*, QEvent*)
(/usr/lib/libQt5Widgets.so.5+0x15b5b0)
    #51 0x7fa5e26b7c7f in QCoreApplication::notifyInternal2(QObject*, QEvent*)
(/usr/lib/libQt5Core.so.5+0x286c7f)
    #52 0x7fa5e270ca2c  (/usr/lib/libQt5Core.so.5+0x2dba2c)
    #53 0x7fa5f87dce66 in g_main_context_dispatch
(/usr/lib/libglib-2.0.so.0+0x49e66)
    #54 0x7fa5f87dd0cf  (/usr/lib/libglib-2.0.so.0+0x4a0cf)
    #55 0x7fa5f87dd17b in g_main_context_iteration
(/usr/lib/libglib-2.0.so.0+0x4a17b)
    #56 0x7fa5e270c57e in
QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)
(/usr/lib/libQt5Core.so.5+0x2db57e)
    #57 0x7fa5e26b60d9 in
QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>)
(/usr/lib/libQt5Core.so.5+0x2850d9)
    #58 0x7fa5e26be5cb in QCoreApplication::exec()
(/usr/lib/libQt5Core.so.5+0x28d5cb)
    #59 0x55f7c81e2a84 in main wireshark-qt.cpp:856
    #60 0x7fa5e0476290 in __libc_start_main (/usr/lib/libc.so.6+0x20290)
    #61 0x55f7c81df169 in _start (/tmp/wsbuild/run/wireshark+0x21bd169)

0x6060000d5fe0 is located 0 bytes inside of 54-byte region
[0x6060000d5fe0,0x6060000d6016)
freed by thread T0 here:
    #0 0x7fa5f90e4b00 in __interceptor_free
/build/gcc-multilib/src/gcc/libsanitizer/asan/asan_malloc_linux.cc:45
    #1 0x55f7c93f67f4 in scan_local_interfaces ui/iface_lists.c:144
    #2 0x55f7c88cd83a in WiresharkApplication::refreshLocalInterfaces()
ui/qt/wireshark_application.cpp:893
    #3 0x55f7c88cd754 in iface_mon_event_cb ui/qt/wireshark_application.cpp:867
    #4 0x55f7c9497ca2 in iface_mon_handler2 caputils/iface_monitor.c:113
    #5 0x7fa5e3aac08d  (/usr/lib/libnl-3.so.200+0xf08d)

previously allocated by thread T0 here:
    #0 0x7fa5f90e5210 in __interceptor_realloc
/build/gcc-multilib/src/gcc/libsanitizer/asan/asan_malloc_linux.cc:75
    #1 0x7fa5e054e92f in __vasprintf_chk (/usr/lib/libc.so.6+0xf892f)

SUMMARY: AddressSanitizer: double-free
/build/gcc-multilib/src/gcc/libsanitizer/asan/asan_malloc_linux.cc:45 in
__interceptor_free


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