diff options
Diffstat (limited to 'kde-frameworks/kio/files/kio-5.113.0-fix-crash-malformed-exec.patch')
-rw-r--r-- | kde-frameworks/kio/files/kio-5.113.0-fix-crash-malformed-exec.patch | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/kde-frameworks/kio/files/kio-5.113.0-fix-crash-malformed-exec.patch b/kde-frameworks/kio/files/kio-5.113.0-fix-crash-malformed-exec.patch new file mode 100644 index 000000000000..3688fa4af276 --- /dev/null +++ b/kde-frameworks/kio/files/kio-5.113.0-fix-crash-malformed-exec.patch @@ -0,0 +1,41 @@ +From ebad60218b9d9e6901ae48c3dec9b90da963809c Mon Sep 17 00:00:00 2001 +From: Harald Sitter <sitter@kde.org> +Date: Wed, 13 Dec 2023 07:44:01 +0100 +Subject: [PATCH] kpropertiesdialog: don't trip over malformed Exec + +when the user incorrectly put env vars into the Program field the +resulting desktop file will be somewhat malformed and literally contain + +> Exec='FOO=1 Bar' + +this then needs careful handling when parsing so we don't accidentally +drain the execline list. when this scenario appears we'll need to assume +the last item in the list is the program as we can't really tell if it +is a program that looks like an env var or an env var without program + +BUG: 465290 +(cherry picked from commit 78d4364677fbe658c6e05d19bb158f895403ccc9) +--- + src/widgets/kpropertiesdialog.cpp | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/src/widgets/kpropertiesdialog.cpp b/src/widgets/kpropertiesdialog.cpp +index 93ec0759cf..25061825af 100644 +--- a/src/widgets/kpropertiesdialog.cpp ++++ b/src/widgets/kpropertiesdialog.cpp +@@ -3379,6 +3379,12 @@ KDesktopPropsPlugin::KDesktopPropsPlugin(KPropertiesDialog *_props) + execLine.pop_front(); + } + for (auto env : execLine) { ++ if (execLine.length() <= 1) { ++ // Don't empty out the list. If the last element contains an equal sign we have to treat it as part of the ++ // program name lest we have no program ++ // https://bugs.kde.org/show_bug.cgi?id=465290 ++ break; ++ } + if (!env.contains(QLatin1String("="))) { + break; + } +-- +GitLab + |