x11-misc/slim: fix pointer arithmetic error
authorIan Stakenvicius <axs@gentoo.org>
Mon, 14 Sep 2015 19:30:37 +0000 (15:30 -0400)
committerIan Stakenvicius <axs@gentoo.org>
Mon, 14 Sep 2015 19:39:44 +0000 (15:39 -0400)
While addressing bug 560088 related to consolekit-1.0, it was found that
some pointer arithmetic being used in a malloc and memcpy was wrong and was causing
a malloc corruption error.  This patch addresses the out-of-bounds indexing.

Package-Manager: portage-2.2.20.1

x11-misc/slim/files/slim-1.3.6-envcpy-bad-pointer-arithmetic.patch [new file with mode: 0644]
x11-misc/slim/slim-1.3.6-r5.ebuild [moved from x11-misc/slim/slim-1.3.6-r4.ebuild with 84% similarity]

diff --git a/x11-misc/slim/files/slim-1.3.6-envcpy-bad-pointer-arithmetic.patch b/x11-misc/slim/files/slim-1.3.6-envcpy-bad-pointer-arithmetic.patch
new file mode 100644 (file)
index 0000000..b3787dd
--- /dev/null
@@ -0,0 +1,15 @@
+--- a/app.cpp  2015-09-14 12:00:00.460481656 -0400
++++ b/app.cpp  2015-09-14 14:41:10.970536588 -0400
+@@ -606,9 +606,9 @@
+               n++;
+-              child_env = static_cast<char**>(malloc(sizeof(char*)*n));
+-              memcpy(child_env, old_env, sizeof(char*)*n+1);
+-              child_env[n - 1] = StrConcat("XDG_SESSION_COOKIE=", ck.get_xdg_session_cookie());
++              child_env = static_cast<char**>(malloc(sizeof(char*)*(n+1)));
++              memcpy(child_env, old_env, sizeof(char*)*n);
++              child_env[n-1] = StrConcat("XDG_SESSION_COOKIE=", ck.get_xdg_session_cookie());
+               child_env[n] = NULL;
+               }
+ # endif /* USE_CONSOLEKIT */
similarity index 84%
rename from x11-misc/slim/slim-1.3.6-r4.ebuild
rename to x11-misc/slim/slim-1.3.6-r5.ebuild
index 728b2f4c5ad78763dc61fe66130e3fe6439ac505..2fdeebede09e2f569a58d6fea5e8e375e93d81cf 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright 1999-2014 Gentoo Foundation
+# Copyright 1999-2015 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 # $Id$
 
@@ -36,17 +36,18 @@ PDEPEND="branding? ( >=x11-themes/slim-themes-1.2.3a-r3 )"
 
 src_prepare() {
        # Our Gentoo-specific config changes
-       epatch "${FILESDIR}"/${P}-config.diff
-       epatch "${FILESDIR}"/${PN}-1.3.5-arm.patch
-       epatch "${FILESDIR}"/${P}-honour-cflags.patch
-       epatch "${FILESDIR}"/${P}-libslim-cmake-fixes.patch
-       epatch "${FILESDIR}"/${PN}-1.3.5-disable-ck-for-systemd.patch
-       epatch "${FILESDIR}"/${P}-strip-systemd-unit-install.patch
-       epatch "${FILESDIR}"/${P}-systemd-session.patch
-       epatch "${FILESDIR}"/${P}-session-chooser.patch
-       epatch "${FILESDIR}"/${P}-fix-slimlock-nopam-v2.patch
-       epatch "${FILESDIR}"/${P}-drop-zlib.patch
-       epatch "${FILESDIR}"/${P}-freetype.patch
+       epatch "${FILESDIR}"/${P}-config.diff \
+               "${FILESDIR}"/${PN}-1.3.5-arm.patch \
+               "${FILESDIR}"/${P}-honour-cflags.patch \
+               "${FILESDIR}"/${P}-libslim-cmake-fixes.patch \
+               "${FILESDIR}"/${PN}-1.3.5-disable-ck-for-systemd.patch \
+               "${FILESDIR}"/${P}-strip-systemd-unit-install.patch \
+               "${FILESDIR}"/${P}-systemd-session.patch \
+               "${FILESDIR}"/${P}-session-chooser.patch \
+               "${FILESDIR}"/${P}-fix-slimlock-nopam-v2.patch \
+               "${FILESDIR}"/${P}-drop-zlib.patch \
+               "${FILESDIR}"/${P}-freetype.patch \
+               "${FILESDIR}"/${P}-envcpy-bad-pointer-arithmetic.patch
 
        if use elibc_FreeBSD; then
                sed -i -e 's/"-DHAVE_SHADOW"/"-DNEEDS_BASENAME"/' CMakeLists.txt \