summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'kde-misc/krusader/files/krusader-2.8.0-segfault.patch')
-rw-r--r--kde-misc/krusader/files/krusader-2.8.0-segfault.patch63
1 files changed, 63 insertions, 0 deletions
diff --git a/kde-misc/krusader/files/krusader-2.8.0-segfault.patch b/kde-misc/krusader/files/krusader-2.8.0-segfault.patch
new file mode 100644
index 000000000000..ac53d8772270
--- /dev/null
+++ b/kde-misc/krusader/files/krusader-2.8.0-segfault.patch
@@ -0,0 +1,63 @@
+From 2938db287f95a772792420f887dec2d88413409b Mon Sep 17 00:00:00 2001
+From: Pavel Karelin <hkarel@yandex.ru>
+Date: Fri, 25 Nov 2022 22:02:00 +0300
+Subject: [PATCH] Fixed segmentation fault when using CTRL+Left/Right on a
+ panel with invalid path
+
+FIXED: [ 462086 ] Segmentation fault when using CTRL+Left/Right on a panel with invalid path
+BUG: 462086
+
+Discussion: https://invent.kde.org/utilities/krusader/-/merge_requests/117
+---
+ app/Panel/listpanel.cpp | 30 +++++++++++++++---------------
+ 1 file changed, 15 insertions(+), 15 deletions(-)
+
+diff --git a/app/Panel/listpanel.cpp b/app/Panel/listpanel.cpp
+index dde22a257..be785a49f 100644
+--- a/app/Panel/listpanel.cpp
++++ b/app/Panel/listpanel.cpp
+@@ -913,26 +913,26 @@ void ListPanel::keyPressEvent(QKeyEvent *e)
+ // user pressed CTRL+Right/Left - refresh other panel to the selected path if it's a
+ // directory otherwise as this one
+ if ((isLeft() && e->key() == Qt::Key_Right) || (!isLeft() && e->key() == Qt::Key_Left)) {
+- QUrl newPath;
+- KrViewItem *it = view->getCurrentKrViewItem();
+-
+- if (it->name() == "..") {
+- newPath = KIO::upUrl(virtualPath());
+- } else {
+- FileItem *v = func->getFileItem(it);
+- // If it's a directory different from ".."
+- if (v && v->isDir() && v->getName() != "..") {
+- newPath = v->getUrl();
++ if (KrViewItem *it = view->getCurrentKrViewItem()) {
++ QUrl newPath;
++ if (it->name() == "..") {
++ newPath = KIO::upUrl(virtualPath());
+ } else {
+- // If it's a supported compressed file
+- if (v && KrArcHandler::arcSupported(v->getMime())) {
+- newPath = func->browsableArchivePath(v->getUrl().fileName());
++ FileItem *v = func->getFileItem(it);
++ // If it's a directory different from ".."
++ if (v && v->isDir() && v->getName() != "..") {
++ newPath = v->getUrl();
+ } else {
+- newPath = virtualPath();
++ // If it's a supported compressed file
++ if (v && KrArcHandler::arcSupported(v->getMime())) {
++ newPath = func->browsableArchivePath(v->getUrl().fileName());
++ } else {
++ newPath = virtualPath();
++ }
+ }
+ }
++ otherPanel()->func->openUrl(newPath);
+ }
+- otherPanel()->func->openUrl(newPath);
+ } else {
+ func->openUrl(otherPanel()->virtualPath());
+ }
+--
+GitLab
+