aboutsummaryrefslogtreecommitdiff
path: root/x11/kde4-runtime/files/patch-kdesu_kdesu_kdesu.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'x11/kde4-runtime/files/patch-kdesu_kdesu_kdesu.cpp')
-rw-r--r--x11/kde4-runtime/files/patch-kdesu_kdesu_kdesu.cpp27
1 files changed, 27 insertions, 0 deletions
diff --git a/x11/kde4-runtime/files/patch-kdesu_kdesu_kdesu.cpp b/x11/kde4-runtime/files/patch-kdesu_kdesu_kdesu.cpp
new file mode 100644
index 000000000000..2b0b1754bedc
--- /dev/null
+++ b/x11/kde4-runtime/files/patch-kdesu_kdesu_kdesu.cpp
@@ -0,0 +1,27 @@
+Fix for https://www.kde.org/info/security/advisory-20160930-1.txt
+--- kdesu/kdesu/kdesu.cpp.orig 2014-10-30 23:50:20 UTC
++++ kdesu/kdesu/kdesu.cpp
+@@ -141,6 +141,10 @@ int main(int argc, char *argv[])
+ {
+ KMessageBox::sorry(0, i18n("Cannot execute command '%1'.", QString::fromLocal8Bit(command)));
+ }
++ if (result == -2)
++ {
++ KMessageBox::sorry(0, i18n("Cannot execute command '%1'. It contains invalid characters.", QString::fromLocal8Bit(command)));
++ }
+
+ return result;
+ }
+@@ -367,6 +371,12 @@ static int startApp()
+ kDebug() << "Don't need password!!\n";
+ }
+
++ for (const QChar character : QString::fromLocal8Bit(command)) {
++ if (!character.isPrint() && character.category() != QChar::Other_Surrogate) {
++ return -2;
++ }
++ }
++
+ // Start the dialog
+ QString password;
+ if (needpw)