[arch-commits] Commit in lib32-elfutils/repos/multilib-x86_64 (4 files)
Laurent Carlier
lcarlier at archlinux.org
Mon Mar 2 21:05:28 UTC 2015
Date: Monday, March 2, 2015 @ 22:05:28
Author: lcarlier
Revision: 128587
archrelease: copy trunk to multilib-x86_64
Added:
lib32-elfutils/repos/multilib-x86_64/0001-tests-Make-deleted-and-vdsosyms-testcases-work-with-.patch
(from rev 128586, lib32-elfutils/trunk/0001-tests-Make-deleted-and-vdsosyms-testcases-work-with-.patch)
lib32-elfutils/repos/multilib-x86_64/CVE-2014-9447.patch
(from rev 128586, lib32-elfutils/trunk/CVE-2014-9447.patch)
lib32-elfutils/repos/multilib-x86_64/PKGBUILD
(from rev 128586, lib32-elfutils/trunk/PKGBUILD)
Deleted:
lib32-elfutils/repos/multilib-x86_64/CVE-2014-9447.patch
-----------------------------------------------------------------+
0001-tests-Make-deleted-and-vdsosyms-testcases-work-with-.patch | 63 +++++
CVE-2014-9447.patch | 106 +++++-----
PKGBUILD | 50 ++++
3 files changed, 166 insertions(+), 53 deletions(-)
Copied: lib32-elfutils/repos/multilib-x86_64/0001-tests-Make-deleted-and-vdsosyms-testcases-work-with-.patch (from rev 128586, lib32-elfutils/trunk/0001-tests-Make-deleted-and-vdsosyms-testcases-work-with-.patch)
===================================================================
--- 0001-tests-Make-deleted-and-vdsosyms-testcases-work-with-.patch (rev 0)
+++ 0001-tests-Make-deleted-and-vdsosyms-testcases-work-with-.patch 2015-03-02 21:05:28 UTC (rev 128587)
@@ -0,0 +1,63 @@
+From 224e6776cfe6fc23a207cd05bf75b1e3548853a0 Mon Sep 17 00:00:00 2001
+From: Mark Wielaard <mjw at redhat.com>
+Date: Thu, 15 Jan 2015 13:39:06 +0100
+Subject: [PATCH] tests: Make deleted and vdsosyms testcases work with
+ "restricted ptrace".
+
+Some systems might have "restricted ptrace" that doesn't allow process
+inspection of arbitrary processes. Change the deleted testcase to
+explicitly allow any other process to inspect it using the PR_SET_PTRACER
+prctl set to PR_SET_PTRACER_ANY. Change the vdsosyms testcase to inspect
+the process itself which should always be allowed.
+
+Reported-by: Anatol Pomozov <anatol.pomozov at gmail.com>
+Signed-off-by: Mark Wielaard <mjw at redhat.com>
+---
+ tests/ChangeLog | 5 +++++
+ tests/deleted.c | 6 ++++++
+ tests/vdsosyms.c | 5 +++--
+ 3 files changed, 14 insertions(+), 2 deletions(-)
+
+diff --git a/tests/deleted.c b/tests/deleted.c
+index 32a310b..d071bf7 100644
+--- a/tests/deleted.c
++++ b/tests/deleted.c
+@@ -23,6 +23,7 @@
+ #include <stdio.h>
+ #include <error.h>
+ #include <errno.h>
++#include <sys/prctl.h>
+
+ extern void libfunc (void);
+
+@@ -42,6 +43,11 @@ main (int argc __attribute__ ((unused)), char **argv __attribute__ ((unused)))
+ assert (!err);
+ err = close (2);
+ assert (!err);
++ /* Make sure eu-stack -p works on this process even with
++ "restricted ptrace". */
++#ifdef PR_SET_PTRACER_ANY
++ prctl(PR_SET_PTRACER, PR_SET_PTRACER_ANY, 0, 0, 0);
++#endif
+ libfunc ();
+ abort ();
+ }
+diff --git a/tests/vdsosyms.c b/tests/vdsosyms.c
+index c1f8d89..4f12b9a 100644
+--- a/tests/vdsosyms.c
++++ b/tests/vdsosyms.c
+@@ -80,8 +80,9 @@ main (int argc __attribute__ ((unused)), char **argv __attribute__ ((unused)))
+ if (dwfl == NULL)
+ error (2, 0, "dwfl_begin: %s", dwfl_errmsg (-1));
+
+- /* Take our parent as "arbitrary" process to inspect. */
+- pid_t pid = getppid();
++ /* Take ourself as "arbitrary" process to inspect. This should work
++ even with "restricted ptrace". */
++ pid_t pid = getpid();
+
+ int result = dwfl_linux_proc_report (dwfl, pid);
+ if (result < 0)
+--
+1.8.3.1
+
Deleted: CVE-2014-9447.patch
===================================================================
--- CVE-2014-9447.patch 2015-03-02 21:03:41 UTC (rev 128586)
+++ CVE-2014-9447.patch 2015-03-02 21:05:28 UTC (rev 128587)
@@ -1,53 +0,0 @@
-From 147018e729e7c22eeabf15b82d26e4bf68a0d18e Mon Sep 17 00:00:00 2001
-From: Alexander Cherepanov <cherepan at mccme.ru>
-Date: Sun, 28 Dec 2014 19:57:19 +0300
-Subject: libelf: Fix dir traversal vuln in ar extraction.
-
-read_long_names terminates names at the first '/' found but then skips
-one character without checking (it's supposed to be '\n'). Hence the
-next name could start with any character including '/'. This leads to
-a directory traversal vulnerability at the time the contents of the
-archive is extracted.
-
-The danger is mitigated by the fact that only one '/' is possible in a
-resulting filename and only in the leading position. Hence only files
-in the root directory can be written via this vuln and only when ar is
-executed as root.
-
-The fix for the vuln is to not skip any characters while looking
-for '/'.
-
-Signed-off-by: Alexander Cherepanov <cherepan at mccme.ru>
-
-diff --git a/libelf/ChangeLog b/libelf/ChangeLog
-index 3b88d03..447c354 100644
---- a/libelf/ChangeLog
-+++ b/libelf/ChangeLog
-@@ -1,3 +1,8 @@
-+2014-12-28 Alexander Cherepanov <cherepan at mccme.ru>
-+
-+ * elf_begin.c (read_long_names): Don't miss '/' right after
-+ another '/'. Fixes a dir traversal vuln in ar extraction.
-+
- 2014-12-18 Ulrich Drepper <drepper at gmail.com>
-
- * Makefile.am: Suppress output of textrel_check command.
-diff --git a/libelf/elf_begin.c b/libelf/elf_begin.c
-index 30abe0b..cd3756c 100644
---- a/libelf/elf_begin.c
-+++ b/libelf/elf_begin.c
-@@ -749,10 +749,7 @@ read_long_names (Elf *elf)
- }
-
- /* NUL-terminate the string. */
-- *runp = '\0';
--
-- /* Skip the NUL byte and the \012. */
-- runp += 2;
-+ *runp++ = '\0';
-
- /* A sanity check. Somebody might have generated invalid
- archive. */
---
-cgit v0.10.2
-
Copied: lib32-elfutils/repos/multilib-x86_64/CVE-2014-9447.patch (from rev 128586, lib32-elfutils/trunk/CVE-2014-9447.patch)
===================================================================
--- CVE-2014-9447.patch (rev 0)
+++ CVE-2014-9447.patch 2015-03-02 21:05:28 UTC (rev 128587)
@@ -0,0 +1,53 @@
+From 147018e729e7c22eeabf15b82d26e4bf68a0d18e Mon Sep 17 00:00:00 2001
+From: Alexander Cherepanov <cherepan at mccme.ru>
+Date: Sun, 28 Dec 2014 19:57:19 +0300
+Subject: libelf: Fix dir traversal vuln in ar extraction.
+
+read_long_names terminates names at the first '/' found but then skips
+one character without checking (it's supposed to be '\n'). Hence the
+next name could start with any character including '/'. This leads to
+a directory traversal vulnerability at the time the contents of the
+archive is extracted.
+
+The danger is mitigated by the fact that only one '/' is possible in a
+resulting filename and only in the leading position. Hence only files
+in the root directory can be written via this vuln and only when ar is
+executed as root.
+
+The fix for the vuln is to not skip any characters while looking
+for '/'.
+
+Signed-off-by: Alexander Cherepanov <cherepan at mccme.ru>
+
+diff --git a/libelf/ChangeLog b/libelf/ChangeLog
+index 3b88d03..447c354 100644
+--- a/libelf/ChangeLog
++++ b/libelf/ChangeLog
+@@ -1,3 +1,8 @@
++2014-12-28 Alexander Cherepanov <cherepan at mccme.ru>
++
++ * elf_begin.c (read_long_names): Don't miss '/' right after
++ another '/'. Fixes a dir traversal vuln in ar extraction.
++
+ 2014-12-18 Ulrich Drepper <drepper at gmail.com>
+
+ * Makefile.am: Suppress output of textrel_check command.
+diff --git a/libelf/elf_begin.c b/libelf/elf_begin.c
+index 30abe0b..cd3756c 100644
+--- a/libelf/elf_begin.c
++++ b/libelf/elf_begin.c
+@@ -749,10 +749,7 @@ read_long_names (Elf *elf)
+ }
+
+ /* NUL-terminate the string. */
+- *runp = '\0';
+-
+- /* Skip the NUL byte and the \012. */
+- runp += 2;
++ *runp++ = '\0';
+
+ /* A sanity check. Somebody might have generated invalid
+ archive. */
+--
+cgit v0.10.2
+
Copied: lib32-elfutils/repos/multilib-x86_64/PKGBUILD (from rev 128586, lib32-elfutils/trunk/PKGBUILD)
===================================================================
--- PKGBUILD (rev 0)
+++ PKGBUILD 2015-03-02 21:05:28 UTC (rev 128587)
@@ -0,0 +1,50 @@
+# $Id$
+# Maintainer: Stéphane Gaudreault <stephane at archlinux.org>
+# Contributor: Andrej Gelenberg <andrej.gelenberg at udo.edu>
+
+_pkgbasename=elfutils
+pkgname=lib32-elfutils
+pkgver=0.161
+pkgrel=2
+pkgdesc="Collection of libraries for working with ELF object files and DWARF debugging information (32-bit)"
+arch=('x86_64')
+url="https://fedorahosted.org/elfutils/"
+license=('LGPL3' 'GPL' 'GPL3')
+depends=('lib32-bzip2' 'lib32-zlib' 'elfutils')
+makedepends=('gcc-multilib')
+source=(https://fedorahosted.org/releases/e/l/elfutils/${pkgver}/elfutils-${pkgver}.tar.bz2{,.sig}
+ 0001-tests-Make-deleted-and-vdsosyms-testcases-work-with-.patch
+ CVE-2014-9447.patch)
+options=('staticlibs')
+sha1sums=('85d48e18359c51e843c49b1894b2f54b85e88ae2'
+ 'SKIP'
+ '86947fb8d0f51a65e19142350925f428ad0c7cb1'
+ 'd3e0e8275695fcc6347b8730bd1eb141a022f756')
+validpgpkeys=('47CC0331081B8BC6D0FD4DA08370665B57816A6A') # Mark J. Wielaard <mark at klomp.org>
+
+prepare() {
+ cd ${_pkgbasename}-${pkgver}
+
+ # https://lists.fedorahosted.org/pipermail/elfutils-devel/2015-January/004541.html
+ patch -p1 < "$srcdir"/0001-tests-Make-deleted-and-vdsosyms-testcases-work-with-.patch
+ patch -p1 < "$srcdir"/CVE-2014-9447.patch
+}
+
+build() {
+ cd ${srcdir}/${_pkgbasename}-${pkgver}
+
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+ CFLAGS+=" -g" # required for test-suite success
+
+ ./configure --prefix=/usr --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd ${srcdir}/${_pkgbasename}-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+ rm -rf ${pkgdir}/usr/{bin,include,share}
+}
More information about the arch-commits
mailing list