From owner-dev-commits-ports-all@freebsd.org Mon Apr 19 21:05:07 2021 Return-Path: Delivered-To: dev-commits-ports-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 29AB75FF273; Mon, 19 Apr 2021 21:05:07 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FPK8M0gfyz4rvQ; Mon, 19 Apr 2021 21:05:07 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 0981026228; Mon, 19 Apr 2021 21:05:07 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13JL561E047526; Mon, 19 Apr 2021 21:05:06 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13JL56GG047525; Mon, 19 Apr 2021 21:05:06 GMT (envelope-from git) Date: Mon, 19 Apr 2021 21:05:06 GMT Message-Id: <202104192105.13JL56GG047525@gitrepo.freebsd.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-branches@FreeBSD.org From: Adriaan de Groot Subject: git: dc11fcf27d86 - 2021Q2 - x11-fm/krusader2: fix crash-on-exit MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: adridg X-Git-Repository: ports X-Git-Refname: refs/heads/2021Q2 X-Git-Reftype: branch X-Git-Commit: dc11fcf27d86281522b097f47c0503b8c1070cb2 Auto-Submitted: auto-generated X-BeenThere: dev-commits-ports-all@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for all branches of the ports repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 19 Apr 2021 21:05:07 -0000 The branch 2021Q2 has been updated by adridg: URL: https://cgit.FreeBSD.org/ports/commit/?id=dc11fcf27d86281522b097f47c0503b8c1070cb2 commit dc11fcf27d86281522b097f47c0503b8c1070cb2 Author: Adriaan de Groot AuthorDate: 2021-04-19 20:59:26 +0000 Commit: Adriaan de Groot CommitDate: 2021-04-19 21:05:05 +0000 x11-fm/krusader2: fix crash-on-exit Details are in the patch which has been added; committed upstream. --- x11-fm/krusader2/Makefile | 1 + x11-fm/krusader2/files/patch-git-415d519e.diff | 52 ++++++++++++++++++++++++++ 2 files changed, 53 insertions(+) diff --git a/x11-fm/krusader2/Makefile b/x11-fm/krusader2/Makefile index b39b6d1dbac4..a0e693906333 100644 --- a/x11-fm/krusader2/Makefile +++ b/x11-fm/krusader2/Makefile @@ -2,6 +2,7 @@ PORTNAME= krusader DISTVERSION= 2.7.2 +PORTREVISION= 1 CATEGORIES= x11-fm kde MASTER_SITES= KDE/stable/${PORTNAME}/${PORTVERSION}/ diff --git a/x11-fm/krusader2/files/patch-git-415d519e.diff b/x11-fm/krusader2/files/patch-git-415d519e.diff new file mode 100644 index 000000000000..f5166551dcb3 --- /dev/null +++ b/x11-fm/krusader2/files/patch-git-415d519e.diff @@ -0,0 +1,52 @@ +commit 415d519e825a6b8b64d2ef5f9a8e9bf7a458d1d0 (HEAD -> master, origin/master, origin/HEAD) +Author: Adriaan de Groot +Date: Mon Apr 19 22:39:44 2021 +0200 + + Fix crash-on-exit on FreeBSD + + Scenario: + - start krusader + - close the application (alt-f4, or click the window-close button) + - SEGV, with this (edited) backtrace: + #0 KUrlNavigator::editor (this=0x80a562400) + #1 0x000000000031e20e in ListPanel::eventFilter (this=0x80c2309c0, watched=0x80a6980d0, e=0x7fffffffc278) + #6 0x00000008018c3c0c in QWidget::~QWidget() () from /usr/local/lib/qt5/libQt5Widgets.so.5 + #7 0x0000000800a26c4e in KUrlComboBox::~KUrlComboBox (this=0x80a6980d0) + #11 0x00000008005de60b in KUrlNavigator::~KUrlNavigator (this=0x80a562400) + #13 0x000000000031d5a5 in ListPanel::~ListPanel (this=0x80c2309c0) + + Analysis: + - During the destructor, events are triggered, which hit the + event-filter function in the object that is undergoing destruction. + Since some of the objects referred to via pointer in the event-filter + are dead or being-destroyed, this is UB (so be glad it crashes!). + - This is very similar to the problem and backtrace in KIO commit + a8a2c08014484145a4bd2a541a1cbeb8be856bf1. + + Fix: + - Uninstall the event-filter before carrying on with destruction. + - While here, add an extra nullptr check for the combobox in + the event-filter. + +diff --git krusader/Panel/listpanel.cpp krusader/Panel/listpanel.cpp +index 6f57c321..6a0914c6 100644 +--- krusader/Panel/listpanel.cpp ++++ krusader/Panel/listpanel.cpp +@@ -380,6 +380,8 @@ ListPanel::ListPanel(QWidget *parent, AbstractPanelManager *manager, const KConf + + ListPanel::~ListPanel() + { ++ view->widget()->removeEventFilter(this); ++ urlNavigator->editor()->removeEventFilter(this); + cancelProgress(); + delete view; + view = nullptr; +@@ -527,7 +529,7 @@ bool ListPanel::eventFilter(QObject * watched, QEvent * e) + } + } + // handle URL navigator key events +- else if(watched == urlNavigator->editor()) { ++ else if(urlNavigator && watched == urlNavigator->editor()) { + // override default shortcut for panel focus + if(e->type() == QEvent::ShortcutOverride) { + auto *ke = dynamic_cast(e);