commit:     d35f109306617f42f57b31169cdf2a6797850297
Author:     Michael Palimaka <kensington <AT> gentoo <DOT> org>
AuthorDate: Thu Sep 29 16:34:24 2016 +0000
Commit:     Michael Palimaka <kensington <AT> gentoo <DOT> org>
CommitDate: Thu Sep 29 16:36:31 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d35f1093

kde-plasma/kde-cli-tools: backport patch from upstream to resolve CVE-2016-7787

Gentoo-bug: 595534

Package-Manager: portage-2.3.1

 .../files/kde-cli-tools-5.6.5-CVE-2016-7787.patch  | 44 +++++++++++++++
 .../kde-cli-tools/kde-cli-tools-5.6.5-r1.ebuild    | 62 ++++++++++++++++++++++
 2 files changed, 106 insertions(+)

diff --git 
a/kde-plasma/kde-cli-tools/files/kde-cli-tools-5.6.5-CVE-2016-7787.patch 
b/kde-plasma/kde-cli-tools/files/kde-cli-tools-5.6.5-CVE-2016-7787.patch
new file mode 100644
index 00000000..cce11d8
--- /dev/null
+++ b/kde-plasma/kde-cli-tools/files/kde-cli-tools-5.6.5-CVE-2016-7787.patch
@@ -0,0 +1,44 @@
+From 5eda179a099ba68a20dc21dc0da63e85a565a171 Mon Sep 17 00:00:00 2001
+From: Martin Sandsmark <[email protected]>
+Date: Fri, 9 Sep 2016 09:05:57 +0200
+Subject: [PATCH] Make sure people are not trying to sneak invisible characters
+ on the kdesu label
+
+i18n: Sorry for the new string
+
+CCMAIL: [email protected]
+---
+ kdesu/kdesu.cpp | 10 ++++++++++
+ 1 file changed, 10 insertions(+)
+
+diff --git a/kdesu/kdesu.cpp b/kdesu/kdesu.cpp
+index b7a66a2..b0efbc7 100644
+--- a/kdesu/kdesu.cpp
++++ b/kdesu/kdesu.cpp
+@@ -162,6 +162,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;
+ }
+@@ -387,6 +391,12 @@ static int startApp(QCommandLineParser& p)
+         qDebug() << "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)
+-- 
+2.7.3
+

diff --git a/kde-plasma/kde-cli-tools/kde-cli-tools-5.6.5-r1.ebuild 
b/kde-plasma/kde-cli-tools/kde-cli-tools-5.6.5-r1.ebuild
new file mode 100644
index 00000000..67d1dde
--- /dev/null
+++ b/kde-plasma/kde-cli-tools/kde-cli-tools-5.6.5-r1.ebuild
@@ -0,0 +1,62 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=6
+
+KDE_HANDBOOK="true"
+KDE_TEST="true"
+VIRTUALX_REQUIRED="test"
+inherit kde5
+
+DESCRIPTION="Tools based on KDE Frameworks 5 to better interact with the 
system"
+HOMEPAGE="https://projects.kde.org/projects/kde/workspace/kde-cli-tools";
+KEYWORDS="~amd64 ~arm ~x86"
+IUSE="+kdesu X"
+
+DEPEND="
+       $(add_frameworks_dep kcmutils)
+       $(add_frameworks_dep kcompletion)
+       $(add_frameworks_dep kconfig)
+       $(add_frameworks_dep kconfigwidgets)
+       $(add_frameworks_dep kcoreaddons)
+       $(add_frameworks_dep ki18n)
+       $(add_frameworks_dep kiconthemes)
+       $(add_frameworks_dep kio)
+       $(add_frameworks_dep kservice)
+       $(add_frameworks_dep kwidgetsaddons)
+       $(add_frameworks_dep kwindowsystem)
+       $(add_qt_dep qtdbus)
+       $(add_qt_dep qtgui)
+       $(add_qt_dep qtsvg)
+       $(add_qt_dep qtwidgets)
+       kdesu? ( $(add_frameworks_dep kdesu) )
+       X? (
+               $(add_frameworks_dep kdelibs4support)
+               $(add_qt_dep qtx11extras)
+               x11-libs/libX11
+       )
+"
+RDEPEND="${DEPEND}
+       handbook? ( !kde-apps/kdesu[handbook] )
+"
+
+# requires running kde environment
+RESTRICT="test"
+
+PATCHES=( "${FILESDIR}/${P}-CVE-2016-7787.patch" )
+
+src_configure() {
+       local mycmakeargs=(
+               $(cmake-utils_use_find_package kdesu KF5Su)
+               $(cmake-utils_use_find_package X KF5KDELibs4Support)
+               $(cmake-utils_use_find_package X Qt5X11Extras)
+       )
+
+       kde5_src_configure
+}
+
+src_install() {
+       kde5_src_install
+       use kdesu && dosym /usr/$(get_libdir)/libexec/kf5/kdesu /usr/bin/kdesu5
+}

Reply via email to