diff options
| author | Johannes Huber <johu@gentoo.org> | 2013-06-04 19:34:18 +0200 |
|---|---|---|
| committer | Johannes Huber <johu@gentoo.org> | 2013-06-04 19:34:18 +0200 |
| commit | 7481883cd3d32ce567db6e7c81e80ead11ff06be (patch) | |
| tree | 7540739dab9b903c0158c75463b6669bea688a47 | |
| parent | 12abccf61e94725f22c2bdda888e7e4cf116e2b4 (diff) | |
| download | kde-7481883cd3d32ce567db6e7c81e80ead11ff06be.tar.gz kde-7481883cd3d32ce567db6e7c81e80ead11ff06be.tar.bz2 kde-7481883cd3d32ce567db6e7c81e80ead11ff06be.zip | |
[kde-base/kdeplasma-addons] Backport patch from upstream to fix CVE-2013-2120 wrt bug #471904 by kensington.
Package-Manager: portage-2.2.0_alpha177
| -rw-r--r-- | kde-base/kdeplasma-addons/files/kdeplasma-addons-4.10.3-cve-2013-2120.patch | 81 | ||||
| -rw-r--r-- | kde-base/kdeplasma-addons/kdeplasma-addons-4.10.4.ebuild | 4 |
2 files changed, 84 insertions, 1 deletions
diff --git a/kde-base/kdeplasma-addons/files/kdeplasma-addons-4.10.3-cve-2013-2120.patch b/kde-base/kdeplasma-addons/files/kdeplasma-addons-4.10.3-cve-2013-2120.patch new file mode 100644 index 00000000000..88d78794a5e --- /dev/null +++ b/kde-base/kdeplasma-addons/files/kdeplasma-addons-4.10.3-cve-2013-2120.patch @@ -0,0 +1,81 @@ +From d84015218bf78b707650cf5426ae1a469d37c29d Mon Sep 17 00:00:00 2001 +From: Aaron Seigo <aseigo@kde.org> +Date: Mon, 3 Jun 2013 19:16:32 +0200 +Subject: [PATCH] use KRandom, avoid modulo bias + +--- + applets/paste/pastemacroexpander.cpp | 29 ++++++++++++++++++++++------- + 1 file changed, 22 insertions(+), 7 deletions(-) + +diff --git a/applets/paste/pastemacroexpander.cpp b/applets/paste/pastemacroexpander.cpp +index ea6163f..d0a8b49 100644 +--- a/applets/paste/pastemacroexpander.cpp ++++ b/applets/paste/pastemacroexpander.cpp +@@ -27,6 +27,7 @@ + #include <KDebug> + #include <KLocale> + #include <KMessageBox> ++#include <KRandom> + + class PasteMacroExpanderSingleton + { +@@ -142,35 +143,49 @@ QString PasteMacroExpander::password(const QString& args) + << "01234567890" + << "!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~"; + +- int charCount; ++ int charCount = 8; + QString chars; + QString result; + + if (a.count() > 0) { +- charCount = qMax(a[0].trimmed().toInt(), 1); +- } else { +- charCount = 8; ++ charCount = qMax(a[0].trimmed().toInt(), 8); + } ++ + if (a.count() < 2) { + chars = characterSets.join(""); + } ++ + if (a.count() > 1) { + chars += (a[1].trimmed() == "true") ? characterSets[0] : ""; + } ++ + if (a.count() > 2) { + chars += (a[2].trimmed() == "true") ? characterSets[1] : ""; + } ++ + if (a.count() > 3) { + chars += (a[3].trimmed() == "true") ? characterSets[2] : ""; + } ++ + if (a.count() > 4) { + chars += (a[4].trimmed() == "true") ? characterSets[3] : ""; + } + +- QDateTime now = QDateTime::currentDateTime(); +- qsrand(now.toTime_t() / now.time().msec()); ++ const int setSize = chars.count(); ++ const int top = (RAND_MAX / setSize) * setSize; ++ kDebug() << "topping out at " << setSize << RAND_MAX << top; + for (int i = 0; i < charCount; ++i) { +- result += chars[qrand() % chars.count()]; ++ // to prevent modulo bias, discard random numbers at the ++ // 'top end' of INT_MAX ++ int rand = -1; ++ do { ++ if (rand > 0) { ++ kDebug() << "Ha!" << rand; ++ } ++ rand = KRandom::random(); ++ } while (rand >= top); ++ ++ result += chars[rand % setSize]; + } + //kDebug() << result; + return result; +-- +1.8.2.1 + diff --git a/kde-base/kdeplasma-addons/kdeplasma-addons-4.10.4.ebuild b/kde-base/kdeplasma-addons/kdeplasma-addons-4.10.4.ebuild index be3662d0e32..0b3cf52b8a6 100644 --- a/kde-base/kdeplasma-addons/kdeplasma-addons-4.10.4.ebuild +++ b/kde-base/kdeplasma-addons/kdeplasma-addons-4.10.4.ebuild @@ -8,7 +8,7 @@ inherit kde4-base DESCRIPTION="Extra Plasma applets and engines" LICENSE="GPL-2 LGPL-2" -KEYWORDS=" ~amd64 ~arm ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux" +KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux" IUSE="attica debug desktopglobe exif fcitx ibus json oauth qalculate qwt scim semantic-desktop" @@ -44,6 +44,8 @@ DEPEND="${COMMON_DEPEND} RDEPEND="${COMMON_DEPEND} " +PATCHES=( "${FILESDIR}/${PN}-4.10.3-cve-2013-2120.patch" ) + src_configure() { mycmakeargs=( -DDBUS_INTERFACES_INSTALL_DIR="${EPREFIX}/usr/share/dbus-1/interfaces/" |
