Wireshark crashes inside Qt library on exit if used in KDE session with Breeze theme decoration plugin. Reproducible: Always Steps to Reproduce: 1. Start capture to get 20+ packets 2. Quit application Actual Results: witeshark crashes on exit. Expected Results: wireshark should exit without segfault. Upstream fix works for me https://gitlab.com/wireshark/wireshark/-/commit/b4d6d76c6eba2da7f8df55c328607fe651037c03 $ emerge --info Portage 3.0.67 (python 3.12.10-final-0, default/linux/amd64/23.0/desktop/systemd, gcc-14, glibc-2.40-r8, 6.12.25-gentoo x86_64) ================================================================= System uname: Linux-6.12.25-gentoo-x86_64-AMD_Ryzen_7_7840HS_w-_Radeon_780M_Graphics-with-glibc2.40 KiB Mem: 63614140 total, 32111504 free KiB Swap: 67108860 total, 67108860 free Timestamp of repository gentoo: Fri, 25 Apr 2025 19:05:19 +0000 Head commit of repository gentoo: 89b256c5be0621b1f2b1300cba74d88dabcdd4a7 Timestamp of repository steam-overlay: Wed, 23 Apr 2025 15:38:10 +0000 Head commit of repository steam-overlay: 23f38449f9a86d0648566b51a51e73d9561a40e6 sh bash 5.2_p37 ld GNU ld (Gentoo 2.44 p1) 2.44.0 app-misc/pax-utils: 1.3.8::gentoo app-shells/bash: 5.2_p37::gentoo dev-build/autoconf: 2.13-r8::gentoo, 2.72-r1::gentoo dev-build/automake: 1.17-r1::gentoo dev-build/cmake: 3.31.5::gentoo dev-build/libtool: 2.5.4::gentoo dev-build/make: 4.4.1-r100::gentoo dev-build/meson: 1.7.0::gentoo dev-lang/perl: 5.40.2::gentoo dev-lang/python: 3.12.10::gentoo, 3.13.3::gentoo dev-lang/rust: 1.85.1::gentoo llvm-core/clang: 19.1.7::gentoo llvm-core/lld: 19.1.7::gentoo llvm-core/llvm: 19.1.7::gentoo sys-apps/baselayout: 2.17::gentoo sys-apps/sandbox: 2.39::gentoo sys-apps/systemd: 256.10::gentoo sys-devel/binutils: 2.44::gentoo sys-devel/binutils-config: 5.5.2::gentoo sys-devel/gcc: 14.2.1_p20241221::gentoo sys-devel/gcc-config: 2.12.1::gentoo sys-kernel/linux-headers: 6.12::gentoo (virtual/os-headers) sys-libs/glibc: 2.40-r8::gentoo Repositories: gentoo location: /var/db/repos/gentoo sync-type: git sync-uri: https://github.com/gentoo-mirror/gentoo.git priority: -1000 volatile: True sync-git-verify-commit-signature: yes steam-overlay location: /var/db/repos/steam-overlay sync-type: git sync-uri: https://github.com/gentoo-mirror/steam-overlay.git masters: gentoo volatile: True local location: /var/db/repos/local masters: gentoo priority: 10 volatile: True Binary Repositories: gentoobinhost priority: 1 sync-uri: https://distfiles.gentoo.org/releases/amd64/binpackages/23.0/x86-64-v3 ACCEPT_KEYWORDS="amd64" ACCEPT_LICENSE="@FREE" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-march=native -O2 -pipe" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/lib64/libreoffice/program/sofficerc /usr/share/config /usr/share/gnupg/qualified.txt /var/bind" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d" CXXFLAGS="-march=native -O2 -pipe" DISTDIR="/var/cache/portage/distfiles" EMERGE_DEFAULT_OPTS=" --getbinpkg" ENV_UNSET="CARGO_HOME DBUS_SESSION_BUS_ADDRESS DISPLAY GDK_PIXBUF_MODULE_FILE GOBIN GOPATH PERL5LIB PERL5OPT PERLPREFIX PERL_CORE PERL_MB_OPT PERL_MM_OPT XAUTHORITY XDG_CACHE_HOME XDG_CONFIG_HOME XDG_DATA_HOME XDG_RUNTIME_DIR XDG_STATE_HOME" FCFLAGS="-march=native -O2 -pipe" FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs binpkg-multi-instance binpkg-request-signature buildpkg-live config-protect-if-modified distlocks ebuild-locks fixlafiles ipc-sandbox merge-sync merge-wait multilib-strict network-sandbox news parallel-fetch pid-sandbox pkgdir-index-trusted preserve-libs protect-owned qa-unresolved-soname-deps sandbox strict suidctl unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr" FFLAGS="-march=native -O2 -pipe" GENTOO_MIRRORS="https://mirror.leaseweb.com/gentoo/" LANG="en_GB.UTF-8" LDFLAGS="-Wl,-O1 -Wl,--as-needed -Wl,-z,pack-relative-relocs" LEX="flex" LINGUAS="ru en bg" PKGDIR="/var/cache/portage/binpkgs" PORTAGE_CONFIGROOT="/" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --exclude=/.git" PORTAGE_TMPDIR="/var/tmp" SHELL="/bin/bash" USE="10bit 256-color X a52 aac acl acpi ads aio alsa alt-svc amd64 amr amrenc ap apng avif base bash-completion blink bluetooth bluray bpf branding brotli bzip2 bzlib cairo caps cdb cdr celt cet cgroups clang cleartype cli conntrack corefonts crt crypt cryptsetup css cue curl daemon dap dav1d dbus dcc_video declarative default-lld default-stack-clash-protection devil dirac distinct-l djvu dns-over-tls dri drm dtmf dts dv dvb dvd dvdr dvdread eap-tls ecdh egl elfutils enca encode epoll epub exceptions exif faac faad farstream ffmpeg fftw fido2 flac fontconfig ftp fts3 g3dvl gbm gdbm gif gles gles2 gmp googledrive gost gpm graphite gsm gssapi gui h224 h281 h323 haptic hardened harfbuzz hdri heif http http2 hwaccel icccm icecast iceweasel iconv icu idn ilbc importd inotify introspection io-uring iproute2 ipv6 jabber javascript jpeg jpeg2k jpegxl json jumbo-build kaccounts kbd kde kdenlive kdexdeltas kdrive kerberos kf6compat lame large-stack lcms leaps-timezone libass libdrm libglvnd libkms libnotify libtirpc lm-sensors localstorage lock lspclient lto lvm lyrics lz4 lzma lzo mad mbim mdnsresponder-compat melt minizip mmap mmx mng mod modemmanager modplug mount mozdevelop mp3 mp4 mpeg mtp multilib multitarget musepack nat natspec ncurses netlink network networkmanager newnet nfs nftables nightly nls nptl nptlonly nsplugin nss numpy ogg openal opencl openconnect openexr opengl openh264 openmp openssl opus otf otr pam pango parallel-compiler pcre pcre16 pcre32 pdf pie pipewire pipewire-alsa pkcs11 png policykit postgres postproc ppds printsupport private-headers proprietary-codecs pulseaudio python qml qos qrcode qt5 qt6 rav1e raw readline realtime redland rfc3779 rls rtmp ru-dv ru-i ru-k sbc schroedinger screencast scripttools sctp sdl sdl2 seccomp secure-delete secureboot security-key semantic-desktop sensors sieve sip sipim smp soap sound speex spell sql sqlite srtp sse sse2 sse3 ssl ssse3 staging startup-notification static-pie svc svg svt-av1 system-bootstrap system-cairo system-cxx-headers system-harfbuzz system-icu system-jpeg system-libevent system-libvpx system-llvm system-png system-sqlite systemd taglib tdls test-rust text tftp theora thin threads threadsafe thunderbolt tiff tor-hardening tpm tray tree-sitter truetype twolame type1 udev udisks uki ukify uncommon-eap-types unicode unicode3 unlock-notify upower urandom usb user-session uvm v4l v4l2 vaapi video vorbis vpx vtv vulcan vulkan wasm wav wayland webchannel webp webui widgets win32codecs wma x264 x265 xattr xcb xfs xft xkb xml xmlrpc xmp xtables xulrunner xv xvfb xvid xxhash yescrypt zeroconf zic-slim zink zlib zram zrtp zstd" ABI_X86="64" ADA_TARGET="gcc_14" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_anon authn_dbm authn_file authz_dbm authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir env expires ext_filter file_cache filter headers include info log_config logio mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="karbon sheets words" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="mmx mmxext sse sse2 aes avx avx2 avx512_bf16 avx512_bitalg avx512_vbmi2 avx512_vnni avx512_vpopcntdq avx512bw avx512cd avx512dq avx512f avx512ifma avx512vbmi avx512vl f16c fma3 pclmul popcnt rdrand sha sse3 sse4_1 sse4_2 sse4a ssse3 vpclmulqdq" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock greis isync itrax navcom oceanserver oncore rtcm104v2 rtcm104v3 sirf skytraq superstar2 tsip tripmate tnt ublox" GUILE_SINGLE_TARGET="3-0" GUILE_TARGETS="3-0" INPUT_DEVICES="libinput evdev" KERNEL="linux" L10N="ru en bg en-US" LCD_DEVICES="bayrad cfontz glk hd44780 lb216 lcdm001 mtxorb text" LUA_SINGLE_TARGET="lua5-1" LUA_TARGETS="lua5-1" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php8-2" POSTGRES_TARGETS="postgres17" PYTHON_SINGLE_TARGET="python3_12" PYTHON_TARGETS="python3_12" RUBY_TARGETS="ruby32" VIDEO_CARDS="amdgpu radeonsi zink" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipp2p iface geoip fuzzy condition tarpit sysrq proto logmark ipmark dhcpmac delude chaos account" Unset: ADDR2LINE, AR, ARFLAGS, AS, ASFLAGS, CC, CCLD, CONFIG_SHELL, CPP, CPPFLAGS, CTARGET, CXX, CXXFILT, ELFEDIT, EXTRA_ECONF, F77FLAGS, FC, GCOV, GPROF, INSTALL_MASK, LC_ALL, LD, LFLAGS, LIBTOOL, MAKE, MAKEFLAGS, MAKEOPTS, NM, OBJCOPY, OBJDUMP, PORTAGE_BINHOST, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, PYTHONPATH, RANLIB, READELF, RUSTFLAGS, SIZE, STRINGS, STRIP, YACC, YFLAGS
address sanitizer output: $ ASAN_OPTIONS=detect_leaks=0:fast_unwind_on_malloc=false:log_threads=1 wireshark ** (wireshark:552752) 13:04:08.467760 [Capture MESSAGE] -- Capture Start ... ** (wireshark:552752) 13:04:09.058177 [Capture MESSAGE] -- Capture started ** (wireshark:552752) 13:04:09.058213 [Capture MESSAGE] -- File: "/tmp/wireshark_wlp1s0XGMJ52.pcapng" ** (wireshark:552752) 13:04:34.316473 [Capture MESSAGE] -- Capture Stop ... ** (wireshark:552752) 13:04:34.335408 [Capture MESSAGE] -- Capture stopped. ================================================================= ==552752==ERROR: AddressSanitizer: heap-use-after-free on address 0x51d0003e9e90 at pc 0x7803310f8896 bp 0x7ffd0ed8dd40 sp 0x7ffd0ed8d4e8 READ of size 592 at 0x51d0003e9e90 thread T0 #0 0x7803310f8895 in memcpy (/usr/lib/gcc/x86_64-pc-linux-gnu/14/libasan.so.8+0xf8895) #1 0x78032fa1fc55 (/usr/lib64/libQt6Core.so.6+0x21fc55) #2 0x78032f9fecbe (/usr/lib64/libQt6Core.so.6+0x1fecbe) #3 0x78032f9feebf (/usr/lib64/libQt6Core.so.6+0x1feebf) #4 0x78032f9ffded in QAbstractAnimationPrivate::setState(QAbstractAnimation::State) (/usr/lib64/libQt6Core.so.6+0x1ffded) #5 0x78032fa00a85 (/usr/lib64/libQt6Core.so.6+0x200a85) #6 0x78032faebebc (/usr/lib64/libQt6Core.so.6+0x2ebebc) #7 0x78032faaa3d2 in QObject::destroyed(QObject*) (/usr/lib64/libQt6Core.so.6+0x2aa3d2) #8 0x78032facc54d in QObject::~QObject() (/usr/lib64/libQt6Core.so.6+0x2cc54d) #9 0x7802fa82f3ea in Breeze::AnimationData::~AnimationData() (/usr/lib64/qt6/plugins/styles/breeze6.so+0x213ea) #10 0x7802fa82f48c in Breeze::GenericData::~GenericData() (/usr/lib64/qt6/plugins/styles/breeze6.so+0x2148c) #11 0x7802fa82f534 in Breeze::EnableData::~EnableData() (/usr/lib64/qt6/plugins/styles/breeze6.so+0x21534) #12 0x78032fa8dc2d in QObject::event(QEvent*) (/usr/lib64/libQt6Core.so.6+0x28dc2d) #13 0x780330d22214 in QApplicationPrivate::notify_helper(QObject*, QEvent*) (/usr/lib64/libQt6Widgets.so.6+0x522214) #14 0x78032fb06eef in QCoreApplication::notifyInternal2(QObject*, QEvent*) (/usr/lib64/libQt6Core.so.6+0x306eef) #15 0x78032fb2ae56 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (/usr/lib64/libQt6Core.so.6+0x32ae56) #16 0x78032fa0595f (/usr/lib64/libQt6Core.so.6+0x20595f) #17 0x78032fa059e5 (/usr/lib64/libQt6Core.so.6+0x2059e5) #18 0x78032fa05a64 (/usr/lib64/libQt6Core.so.6+0x205a64) #19 0x78031dc77c8a in __cxa_finalize (/usr/lib64/libc.so.6+0x3ec8a) #20 0x78032f8ca0b6 (/usr/lib64/libQt6Core.so.6+0xca0b6) 0x51d0003e9e90 is located 16 bytes inside of 2048-byte region [0x51d0003e9e80,0x51d0003ea680) freed by thread T0 here: #0 0x7803310f9958 (/usr/lib/gcc/x86_64-pc-linux-gnu/14/libasan.so.8+0xf9958) #1 0x78032f9e2de0 (/usr/lib64/libQt6Core.so.6+0x1e2de0) #2 0x78032fa14027 (/usr/lib64/libQt6Core.so.6+0x214027) #3 0x78031dc77e5e in __call_tls_dtors (/usr/lib64/libc.so.6+0x3ee5e) #4 0x78031dc78269 (/usr/lib64/libc.so.6+0x3f269) #5 0x78031dc782bf in exit (/usr/lib64/libc.so.6+0x3f2bf) #6 0x5b90e3b464bd in exit_application /var/tmp/portage/net-analyzer/wireshark-4.4.5-r1/work/wireshark-4.4.5/ui/qt/main.cpp:131 #7 0x5b90e3b4a06b in main /var/tmp/portage/net-analyzer/wireshark-4.4.5-r1/work/wireshark-4.4.5/ui/qt/main.cpp:1203 #8 0x78031dc5f3ed (/usr/lib64/libc.so.6+0x263ed) #9 0x78031dc5f4a8 in __libc_start_main (/usr/lib64/libc.so.6+0x264a8) #10 0x5b90e3658764 in _start (/usr/bin/wireshark+0xcd764) previously allocated by thread T0 here: #0 0x7803310f9c18 (/usr/lib/gcc/x86_64-pc-linux-gnu/14/libasan.so.8+0xf9c18) #1 0x78032fa42b94 in QArrayData::reallocateUnaligned(QArrayData*, void*, long long, long long, QArrayData::AllocationOption) (/usr/lib64/libQt6Core.so.6+0x242b94) #2 0x78032fa1fd1c (/usr/lib64/libQt6Core.so.6+0x21fd1c) #3 0x78032fa201d3 (/usr/lib64/libQt6Core.so.6+0x2201d3) #4 0x78032f9ffb65 (/usr/lib64/libQt6Core.so.6+0x1ffb65) #5 0x78032fa00043 in QAbstractAnimationPrivate::setState(QAbstractAnimation::State) (/usr/lib64/libQt6Core.so.6+0x200043) #6 0x7802fa83ffda in Breeze::WidgetStateData::updateState(bool) /var/tmp/portage/kde-plasma/breeze-6.3.4/work/breeze-6.3.4/kstyle/animations/breezewidgetstatedata.cpp:26 #7 0x7802fa8391dd in Breeze::EnableData::eventFilter(QObject*, QEvent*) /var/tmp/portage/kde-plasma/breeze-6.3.4/work/breeze-6.3.4/kstyle/animations/breezeenabledata.cpp:23 #8 0x78032fb06c93 in QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) (/usr/lib64/libQt6Core.so.6+0x306c93) #9 0x780330d22204 in QApplicationPrivate::notify_helper(QObject*, QEvent*) (/usr/lib64/libQt6Widgets.so.6+0x522204) #10 0x78032fb06eef in QCoreApplication::notifyInternal2(QObject*, QEvent*) (/usr/lib64/libQt6Core.so.6+0x306eef) #11 0x780330d049b7 in QWidgetPrivate::setEnabled_helper(bool) (/usr/lib64/libQt6Widgets.so.6+0x5049b7) #12 0x780330d04ac1 in QWidgetPrivate::setEnabled_helper(bool) (/usr/lib64/libQt6Widgets.so.6+0x504ac1) #13 0x5b90e3efcb70 in WiresharkMainWindow::mainStackChanged(int) /var/tmp/portage/net-analyzer/wireshark-4.4.5-r1/work/wireshark-4.4.5/ui/qt/wireshark_main_window_slots.cpp:1032 #14 0x5b90e3ec2c28 in QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<int>, void, void (WiresharkMainWindow::*)(int)>::call(void (WiresharkMainWindow::*)(int), WiresharkMainWindow*, void**)::{lambda()#1}::operator()() const /usr/include/qt6/QtCore/qobjectdefs_impl.h:152 #15 0x5b90e3ec2e3c in void QtPrivate::FunctorCallBase::call_internal<void, QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<int>, void, void (WiresharkMainWindow::*)(int)>::call(void (WiresharkMainWindow::*)(int), WiresharkMainWindow*, void**)::{lambda()#1}>(void**, QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<int>, void, void (WiresharkMainWindow::*)(int)>::call(void (WiresharkMainWindow::*)(int), WiresharkMainWindow*, void**)::{lambda()#1}&&) /usr/include/qt6/QtCore/qobjectdefs_impl.h:65 #16 0x5b90e3ec2e3c in QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<int>, void, void (WiresharkMainWindow::*)(int)>::call(void (WiresharkMainWindow::*)(int), WiresharkMainWindow*, void**) /usr/include/qt6/QtCore/qobjectdefs_impl.h:151 #17 0x5b90e3ec2e3c in void QtPrivate::FunctionPointer<void (WiresharkMainWindow::*)(int)>::call<QtPrivate::List<int>, void>(void (WiresharkMainWindow::*)(int), WiresharkMainWindow*, void**) /usr/include/qt6/QtCore/qobjectdefs_impl.h:199 #18 0x5b90e3ec2f57 in QtPrivate::QCallableObject<void (WiresharkMainWindow::*)(int), QtPrivate::List<int>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) /usr/include/qt6/QtCore/qobjectdefs_impl.h:570 #19 0x78032faebebc (/usr/lib64/libQt6Core.so.6+0x2ebebc) #20 0x780330b2ec01 in QStackedWidget::currentChanged(int) (/usr/lib64/libQt6Widgets.so.6+0x32ec01) #21 0x78032faebebc (/usr/lib64/libQt6Core.so.6+0x2ebebc) #22 0x780330c89754 in QStackedLayout::currentChanged(int) (/usr/lib64/libQt6Widgets.so.6+0x489754) #23 0x780330d2eb02 in QStackedLayout::setCurrentIndex(int) (/usr/lib64/libQt6Widgets.so.6+0x52eb02) #24 0x780330d2ef23 in QStackedLayout::takeAt(int) (/usr/lib64/libQt6Widgets.so.6+0x52ef23) #25 0x780330c8851f (/usr/lib64/libQt6Widgets.so.6+0x48851f) #26 0x780330d221f9 in QApplicationPrivate::notify_helper(QObject*, QEvent*) (/usr/lib64/libQt6Widgets.so.6+0x5221f9) #27 0x78032fb06eef in QCoreApplication::notifyInternal2(QObject*, QEvent*) (/usr/lib64/libQt6Core.so.6+0x306eef) #28 0x78032facbd69 in QObjectPrivate::setParent_helper(QObject*) (/usr/lib64/libQt6Core.so.6+0x2cbd69) #29 0x78032facc29e in QObject::~QObject() (/usr/lib64/libQt6Core.so.6+0x2cc29e) SUMMARY: AddressSanitizer: heap-use-after-free (/usr/lib/gcc/x86_64-pc-linux-gnu/14/libasan.so.8+0xf8895) in memcpy Shadow bytes around the buggy address: 0x51d0003e9c00: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd 0x51d0003e9c80: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd 0x51d0003e9d00: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd 0x51d0003e9d80: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa 0x51d0003e9e00: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa =>0x51d0003e9e80: fd fd[fd]fd fd fd fd fd fd fd fd fd fd fd fd fd 0x51d0003e9f00: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd 0x51d0003e9f80: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd 0x51d0003ea000: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd 0x51d0003ea080: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd 0x51d0003ea100: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd Shadow byte legend (one shadow byte represents 8 application bytes): Addressable: 00 Partially addressable: 01 02 03 04 05 06 07 Heap left redzone: fa Freed heap region: fd Stack left redzone: f1 Stack mid redzone: f2 Stack right redzone: f3 Stack after return: f5 Stack use after scope: f8 Global redzone: f9 Global init order: f6 Poisoned by user: f7 Container overflow: fc Array cookie: ac Intra object redzone: bb ASan internal: fe Left alloca redzone: ca Right alloca redzone: cb ==552752==ABORTING
@qt: We'll add the patch to Wireshark, but may want to pull in those patches for Qt itself too.
(In reply to Sam James from comment #2) > @qt: We'll add the patch to Wireshark, but may want to pull in those patches > for Qt itself too. What patches? Haven't looked at everything, but I checked the QTBUG link thinking it'd be that, but the fix commit is in Qt 6.8.3 and affected 6.8.2 is just waiting for stablereq to be done for cleanup.
Ah, sorry, I got the versions mixed up. Indeed.
While I cannot reproduce the crash, I have noticed the QT-related QThreadStorage warnings on exit: $wireshark <press ctrl-Q> ** (wireshark:15321) 18:10:30.446429 [GUI WARNING] -- QThreadStorage: entry 4 destroyed before end of thread 0x5631a0954a70 ** (wireshark:15321) 18:10:30.446454 [GUI WARNING] -- QThreadStorage: entry 3 destroyed before end of thread 0x5631a0954a70 ** (wireshark:15321) 18:10:30.446460 [GUI WARNING] -- QThreadStorage: entry 2 destroyed before end of thread 0x5631a0954a70 ..which always seemed fishy and related to destructor ordering. I'll give the MR patch a try.
The upstream commit fixed it (calling exit() is really not nice) so I made a PR. Enjoy :)
The bug has been closed via the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2fdb70bfff9392d8634fcbd1ae44ae10fb3f0e75 commit 2fdb70bfff9392d8634fcbd1ae44ae10fb3f0e75 Author: Holger Hoffstätte <holger@applied-asynchrony.com> AuthorDate: 2025-04-26 16:52:58 +0000 Commit: Sam James <sam@gentoo.org> CommitDate: 2025-04-26 17:23:39 +0000 net-analyzer/wireshark: properly return from main() Closes: https://bugs.gentoo.org/954756 Signed-off-by: Holger Hoffstätte <holger@applied-asynchrony.com> Part-of: https://github.com/gentoo/gentoo/pull/41773 Closes: https://github.com/gentoo/gentoo/pull/41773 Signed-off-by: Sam James <sam@gentoo.org> .../wireshark/files/4.4.6-return-from-main.patch | 59 ++++++++++++++++++++++ ...k-4.4.6-r1.ebuild => wireshark-4.4.6-r2.ebuild} | 1 + 2 files changed, 60 insertions(+)