x11-misc/slock: Apply patch for CVE-2016-6866 (bug #591664).
authorJeroen Roovers <jer@gentoo.org>
Fri, 19 Aug 2016 14:46:08 +0000 (16:46 +0200)
committerJeroen Roovers <jer@gentoo.org>
Fri, 19 Aug 2016 14:46:36 +0000 (16:46 +0200)
Package-Manager: portage-2.3.0

x11-misc/slock/files/slock-1.3-CVE-2016-6866.patch [new file with mode: 0644]
x11-misc/slock/slock-1.3-r3.ebuild [new file with mode: 0644]

diff --git a/x11-misc/slock/files/slock-1.3-CVE-2016-6866.patch b/x11-misc/slock/files/slock-1.3-CVE-2016-6866.patch
new file mode 100644 (file)
index 0000000..a5043b9
--- /dev/null
@@ -0,0 +1,11 @@
+--- a/slock.c
++++ b/slock.c
+@@ -310,6 +310,8 @@
+ 
+ #ifndef HAVE_BSD_AUTH
+       pws = getpw();
++      if(strlen(pws) < 2)
++              die("This user has no password set.\n");
+ #endif
+ 
+       if (!(dpy = XOpenDisplay(0)))
diff --git a/x11-misc/slock/slock-1.3-r3.ebuild b/x11-misc/slock/slock-1.3-r3.ebuild
new file mode 100644 (file)
index 0000000..5a73ccd
--- /dev/null
@@ -0,0 +1,63 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=6
+inherit fcaps savedconfig toolchain-funcs
+
+DESCRIPTION="simple X screen locker"
+HOMEPAGE="http://tools.suckless.org/slock"
+SRC_URI="http://dl.suckless.org/tools/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~hppa ~x86 ~x86-fbsd"
+
+RDEPEND="
+       x11-libs/libX11
+       x11-libs/libXext
+       x11-libs/libXrandr
+"
+DEPEND="
+       ${RDEPEND}
+       x11-proto/randrproto
+       x11-proto/xproto
+"
+
+src_prepare() {
+       eapply \
+               "${FILESDIR}"/${PN}-1.3-warning.patch \
+               "${FILESDIR}"/${PN}-1.3-CVE-2016-6866.patch
+
+       eapply_user
+
+       sed -i \
+               -e '/^CFLAGS/{s: -Os::g; s:= :+= :g}' \
+               -e '/^CC/d' \
+               -e '/^LDFLAGS/{s:-s::g; s:= :+= :g}' \
+               config.mk || die
+       sed -i \
+               -e 's|@${CC}|$(CC)|g' \
+               Makefile || die
+       if use elibc_FreeBSD; then
+               sed -i -e 's/-DHAVE_SHADOW_H//' config.mk || die
+       fi
+       restore_config config.h
+       tc-export CC
+}
+
+src_compile() { emake slock; }
+
+src_install() {
+       dobin slock
+       save_config config.h
+}
+
+pkg_postinst() {
+       # cap_dac_read_search used to be enough for shadow access
+       # but now slock wants to write to /proc/self/oom_score_adj
+       # and for that it needs:
+       fcaps cap_dac_override,cap_sys_resource /usr/bin/slock
+
+       savedconfig_pkg_postinst
+}