summaryrefslogtreecommitdiff
path: root/kde-apps/kio-extras/files/kio-extras-21.04.3-kio_filenamesearch-crash.patch
diff options
context:
space:
mode:
Diffstat (limited to 'kde-apps/kio-extras/files/kio-extras-21.04.3-kio_filenamesearch-crash.patch')
-rw-r--r--kde-apps/kio-extras/files/kio-extras-21.04.3-kio_filenamesearch-crash.patch36
1 files changed, 36 insertions, 0 deletions
diff --git a/kde-apps/kio-extras/files/kio-extras-21.04.3-kio_filenamesearch-crash.patch b/kde-apps/kio-extras/files/kio-extras-21.04.3-kio_filenamesearch-crash.patch
new file mode 100644
index 000000000000..dff398e68a25
--- /dev/null
+++ b/kde-apps/kio-extras/files/kio-extras-21.04.3-kio_filenamesearch-crash.patch
@@ -0,0 +1,36 @@
+From 5dff395ecea2977cf149c293c16c4d4a5151493b Mon Sep 17 00:00:00 2001
+From: Ahmad Samir <a.samirh78@gmail.com>
+Date: Fri, 9 Jul 2021 17:11:02 +0200
+Subject: [PATCH] kio_filenamesearch: fix crash due to KCoreDirLister changes
+
+Error reporting was changed in KCoreDirlister, to match the original behaviour
+we need to explicitly disable auto error handling.
+
+This fixes a crash while searching in Dolphin, kio_filenamesearch intrenally
+uses a dirlister, and a nested event loop, if there is an error while listing
+some dir it tries to report it using a job ui delegate, but the parent job
+could well be dead by that time, which causes a crash:
+"QWidget: Cannot create a QWidget without QApplication"
+
+Note that this crash only happens if KDE_FORK_SLAVES is _not_ set.
+
+BUG: 438187
+---
+ filenamesearch/kio_filenamesearch.cpp | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/filenamesearch/kio_filenamesearch.cpp b/filenamesearch/kio_filenamesearch.cpp
+index 4d15aac2..5651a025 100644
+--- a/filenamesearch/kio_filenamesearch.cpp
++++ b/filenamesearch/kio_filenamesearch.cpp
+@@ -102,6 +102,7 @@ void FileNameSearchProtocol::searchDirectory(const QUrl &directory,
+ QScopedPointer<KCoreDirLister> dirLister(new KCoreDirLister);
+ dirLister->setDelayedMimeTypes(true);
+ dirLister->openUrl(directory);
++ dirLister->setAutoErrorHandlingEnabled(false);
+
+ QEventLoop eventLoop;
+ QObject::connect(dirLister.data(), static_cast<void(KCoreDirLister::*)()>(&KCoreDirLister::canceled),
+--
+GitLab
+