From 7ced997b9e43728d079f67f1568e0c67bbd63fdd Mon Sep 17 00:00:00 2001 From: Michal Ruprich Date: Thu, 31 Aug 2023 09:09:32 +0200 Subject: [PATCH] wireshark crash in managed interfaces --- wireshark-0011-manage-interfaces-crash.patch | 74 ++++++++++++++++++++ wireshark.spec | 6 +- 2 files changed, 79 insertions(+), 1 deletion(-) create mode 100644 wireshark-0011-manage-interfaces-crash.patch diff --git a/wireshark-0011-manage-interfaces-crash.patch b/wireshark-0011-manage-interfaces-crash.patch new file mode 100644 index 0000000..f2eb347 --- /dev/null +++ b/wireshark-0011-manage-interfaces-crash.patch @@ -0,0 +1,74 @@ +From 2d55e5672b07a8a102024e0af66e821bba51213b Mon Sep 17 00:00:00 2001 +From: Gerald Combs +Date: Sun, 27 Aug 2023 14:47:52 -0700 +Subject: [PATCH] Qt: Fix ManageInterfacesDialog cleanup + +Handle our ManageInterfacesDialog cleanup tasks inside our destructor. +If we try to handle them in on_buttonBox_accepted we run into a race +condition with WA_DeleteOnClose. + +Fixes #19287 +--- + ui/qt/manage_interfaces_dialog.cpp | 25 ++++++++++++------------- + ui/qt/manage_interfaces_dialog.h | 2 -- + 2 files changed, 12 insertions(+), 15 deletions(-) + +diff --git a/ui/qt/manage_interfaces_dialog.cpp b/ui/qt/manage_interfaces_dialog.cpp +index cb9da8697b5..a8529e265a9 100644 +--- a/ui/qt/manage_interfaces_dialog.cpp ++++ b/ui/qt/manage_interfaces_dialog.cpp +@@ -209,6 +209,18 @@ ManageInterfacesDialog::ManageInterfacesDialog(QWidget *parent) : + + ManageInterfacesDialog::~ManageInterfacesDialog() + { ++ if (result() == QDialog::Accepted) { ++#ifdef HAVE_LIBPCAP ++ sourceModel->save(); ++#endif ++#ifdef HAVE_PCAP_REMOTE ++ remoteAccepted(); ++#endif ++ prefs_main_write(); ++ mainApp->refreshLocalInterfaces(); ++ emit ifsChanged(); ++ } ++ + delete ui; + } + +@@ -252,19 +264,6 @@ void ManageInterfacesDialog::updateWidgets() + ui->hintLabel->setText(hint); + } + +-void ManageInterfacesDialog::on_buttonBox_accepted() +-{ +-#ifdef HAVE_LIBPCAP +- sourceModel->save(); +-#endif +-#ifdef HAVE_PCAP_REMOTE +- remoteAccepted(); +-#endif +- prefs_main_write(); +- mainApp->refreshLocalInterfaces(); +- emit ifsChanged(); +-} +- + #ifdef HAVE_LIBPCAP + void ManageInterfacesDialog::on_addPipe_clicked() + { +diff --git a/ui/qt/manage_interfaces_dialog.h b/ui/qt/manage_interfaces_dialog.h +index 80b78afbe7a..79e9d0d9bfa 100644 +--- a/ui/qt/manage_interfaces_dialog.h ++++ b/ui/qt/manage_interfaces_dialog.h +@@ -59,8 +59,6 @@ signals: + private slots: + void updateWidgets(); + +- void on_buttonBox_accepted(); +- + #ifdef HAVE_LIBPCAP + void on_addPipe_clicked(); + void on_delPipe_clicked(); +-- +GitLab + diff --git a/wireshark.spec b/wireshark.spec index 783eca5..c4cedd1 100644 --- a/wireshark.spec +++ b/wireshark.spec @@ -6,7 +6,7 @@ Summary: Network traffic analyzer Name: wireshark Version: 4.0.8 -Release: 1%{?dist} +Release: 2%{?dist} Epoch: 1 License: BSD-1-Clause AND BSD-2-Clause AND BSD-3-Clause AND MIT AND GPL-2.0-or-later AND LGPL-2.0-or-later AND Zlib AND ISC AND (BSD-3-Clause OR GPL-2.0-only) AND (GPL-2.0-or-later AND Zlib) Url: http://www.wireshark.org/ @@ -30,6 +30,7 @@ Patch7: wireshark-0007-cmakelists.patch Patch8: wireshark-0008-glib2-g_strdup-build.patch Patch9: wireshark-0009-fix-asn2wrs-cmake.patch Patch10: wireshark-0010-ripemd-fips-core-dump.patch +Patch11: wireshark-0011-manage-interfaces-crash.patch #install tshark together with wireshark GUI Requires: %{name}-cli = %{epoch}:%{version}-%{release} @@ -280,6 +281,9 @@ fi %{_libdir}/pkgconfig/%{name}.pc %changelog +* Thu Aug 31 2023 Michal Ruprich - 1:4.0.8-2 +- Resolves: #2236246 - wireshark crash in managed interfaces + * Tue Aug 29 2023 Michal Ruprich - 1:4.0.8-1 - New version 4.0.8 - Resolves: #2235577 - possible Denial of Service via crafted package