summaryrefslogtreecommitdiff
path: root/app-misc/pax-utils/files
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
committerV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
commit4f2d7949f03e1c198bc888f2d05f421d35c57e21 (patch)
treeba5f07bf3f9d22d82e54a462313f5d244036c768 /app-misc/pax-utils/files
reinit the tree, so we can have metadata
Diffstat (limited to 'app-misc/pax-utils/files')
-rw-r--r--app-misc/pax-utils/files/0001-lddtree.py-work-around-pyelftools-API-change.patch29
-rw-r--r--app-misc/pax-utils/files/pax-utils-1.2.2-linux-2.6.32.patch65
-rw-r--r--app-misc/pax-utils/files/pax-utils-1.2.2-scanelf-fix-out-of-bounds-access-in-ia64.patch72
-rw-r--r--app-misc/pax-utils/files/pax-utils-1.2.2-solaris.patch181
4 files changed, 347 insertions, 0 deletions
diff --git a/app-misc/pax-utils/files/0001-lddtree.py-work-around-pyelftools-API-change.patch b/app-misc/pax-utils/files/0001-lddtree.py-work-around-pyelftools-API-change.patch
new file mode 100644
index 000000000000..7a8b74ea1e03
--- /dev/null
+++ b/app-misc/pax-utils/files/0001-lddtree.py-work-around-pyelftools-API-change.patch
@@ -0,0 +1,29 @@
+From 6557b1512ebfda508345e032e09ed85789c16c98 Mon Sep 17 00:00:00 2001
+From: Mike Gilbert <floppym@gentoo.org>
+Date: Tue, 8 Nov 2016 15:37:27 -0500
+Subject: [PATCH] lddtree.py: work around pyelftools API change
+
+Section names now get returned as strings rather than bytes. See
+108eaea9 upstream.
+
+Bug: https://bugs.gentoo.org/599082
+---
+ lddtree.py | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/lddtree.py b/lddtree.py
+index 3971a9a..8480248 100755
+--- a/lddtree.py
++++ b/lddtree.py
+@@ -72,6 +72,8 @@ def dbg(debug, *args, **kwargs):
+
+ def bstr(buf):
+ """Decode the byte string into a string"""
++ if isinstance(buf, str):
++ return buf
+ return buf.decode('utf-8')
+
+
+--
+2.10.2
+
diff --git a/app-misc/pax-utils/files/pax-utils-1.2.2-linux-2.6.32.patch b/app-misc/pax-utils/files/pax-utils-1.2.2-linux-2.6.32.patch
new file mode 100644
index 000000000000..8139310b2e0b
--- /dev/null
+++ b/app-misc/pax-utils/files/pax-utils-1.2.2-linux-2.6.32.patch
@@ -0,0 +1,65 @@
+This is the diff for generated sources after applying:
+https://github.com/gentoo/pax-utils/pull/2
+
+diff -ru pax-utils-HEAD.orig/config.h.in pax-utils-HEAD/config.h.in
+--- pax-utils-HEAD.orig/config.h.in 2017-04-18 16:26:42.000000000 +0200
++++ pax-utils-HEAD/config.h.in 2017-04-18 16:28:05.000000000 +0200
+@@ -526,6 +526,9 @@
+ /* Define to 1 if you have the `link' function. */
+ #undef HAVE_LINK
+
++/* Define to 1 if you have the <linux/securebits.h> header file. */
++#undef HAVE_LINUX_SECUREBITS_H
++
+ /* Define to 1 if the system has the type 'long long int'. */
+ #undef HAVE_LONG_LONG_INT
+
+diff -ru pax-utils-HEAD.orig/configure pax-utils-HEAD/configure
+--- pax-utils-HEAD.orig/configure 2017-04-18 16:26:41.000000000 +0200
++++ pax-utils-HEAD/configure 2017-04-18 16:28:03.000000000 +0200
+@@ -34537,6 +34537,19 @@
+
+
+
++for ac_header in linux/securebits.h
++do :
++ ac_fn_c_check_header_mongrel "$LINENO" "linux/securebits.h" "ac_cv_header_linux_securebits_h" "$ac_includes_default"
++if test "x$ac_cv_header_linux_securebits_h" = xyes; then :
++ cat >>confdefs.h <<_ACEOF
++#define HAVE_LINUX_SECUREBITS_H 1
++_ACEOF
++
++fi
++
++done
++
++
+ ac_config_files="$ac_config_files Makefile autotools/gnulib/Makefile"
+
+ cat >confcache <<\_ACEOF
+diff -ru pax-utils-HEAD.orig/configure.ac pax-utils-HEAD/configure.ac
+--- pax-utils-HEAD.orig/configure.ac 2017-04-18 16:25:48.000000000 +0200
++++ pax-utils-HEAD/configure.ac 2017-04-18 16:27:11.000000000 +0200
+#@@ -62,6 +62,8 @@
+ AX_CHECK_COMPILE_FLAG(flag, AS_VAR_APPEND([CFLAGS], " flag"))
+ ])
+
++AC_CHECK_HEADERS([linux/securebits.h])
++
+ AC_CONFIG_FILES([
+ Makefile
+ autotools/gnulib/Makefile
+diff -ru pax-utils-HEAD.orig/porting.h pax-utils-HEAD/porting.h
+--- pax-utils-HEAD.orig/porting.h 2017-03-03 21:07:15.000000000 +0100
++++ pax-utils-HEAD/porting.h 2017-04-18 16:18:22.000000000 +0200
+@@ -46,7 +46,9 @@
+ #endif
+ #if defined(__linux__)
+ # include <sys/prctl.h>
+-# include <linux/securebits.h>
++# if !defined(HAVE_CONFIG_H) || defined(HAVE_LINUX_SECUREBITS_H)
++# include <linux/securebits.h>
++# endif
+ #endif
+ #if defined(__GLIBC__) || defined(__UCLIBC__) || defined(__ANDROID__)
+ # include <byteswap.h>
diff --git a/app-misc/pax-utils/files/pax-utils-1.2.2-scanelf-fix-out-of-bounds-access-in-ia64.patch b/app-misc/pax-utils/files/pax-utils-1.2.2-scanelf-fix-out-of-bounds-access-in-ia64.patch
new file mode 100644
index 000000000000..1fa5c3187e5a
--- /dev/null
+++ b/app-misc/pax-utils/files/pax-utils-1.2.2-scanelf-fix-out-of-bounds-access-in-ia64.patch
@@ -0,0 +1,72 @@
+From e95103c40d0541fbcdb4b84b000832d9b1b83b8d Mon Sep 17 00:00:00 2001
+From: Sergei Trofimovich <slyfox@gentoo.org>
+Date: Sat, 19 Aug 2017 10:34:41 +0100
+Subject: [PATCH] scanelf: fix out-of-bounds access in ia64
+
+commit 2eb852129394f97dae89c0ff1f9f48637edcb0e9
+slightly changed decoder and added unchecked
+read from elf header:
+
+```
+ switch (EGET(dpltrel->d_un.d_val)) { \
+ case DT_REL: \
+ rel = REL##B(elf->vdata + EGET(drel->d_un.d_val)); \
+```
+
+On ia64 'EGET(drel->d_un.d_val)' returns absolute address:
+
+```
+ $ dumpelf bug/luatex
+ ...
+ /* Dynamic tag #31 'DT_RELA' 0x97E310 */
+ {
+ .d_tag = 0x7 ,
+ .d_un = {
+ .d_val = 0x4000000000031C30 ,
+ .d_ptr = 0x4000000000031C30 ,
+ },
+ },
+```
+
+That causes 'scanelf' crash on binaries like 'luatex'.
+
+This change restores check and loudly skips such sections:
+ scanelf: bug/luatex: DT_RELA is out of file range
+
+Bug: https://bugs.gentoo.org/624356
+Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
+---
+ scanelf.c | 12 ++++++++++++
+ 1 file changed, 12 insertions(+)
+
+diff --git a/scanelf.c b/scanelf.c
+index 1ead891..a054408 100644
+--- a/scanelf.c
++++ b/scanelf.c
+@@ -607,11 +607,23 @@ static char *scanelf_file_textrels(elfobj *elf, char *found_textrels, char *foun
+ } \
+ switch (EGET(dpltrel->d_un.d_val)) { \
+ case DT_REL: \
++ if (EGET(drel->d_un.d_val) >= (uint64_t)elf->len - sizeof (drel->d_un.d_val)) { \
++ rel = NULL; \
++ rela = NULL; \
++ warn("%s: DT_REL is out of file range", elf->filename); \
++ break; \
++ } \
+ rel = REL##B(elf->vdata + EGET(drel->d_un.d_val)); \
+ rela = NULL; \
+ pltrel = DT_REL; \
+ break; \
+ case DT_RELA: \
++ if (EGET(drel->d_un.d_val) >= (uint64_t)elf->len - sizeof (drel->d_un.d_val)) { \
++ rel = NULL; \
++ rela = NULL; \
++ warn("%s: DT_RELA is out of file range", elf->filename); \
++ break; \
++ } \
+ rel = NULL; \
+ rela = RELA##B(elf->vdata + EGET(drel->d_un.d_val)); \
+ pltrel = DT_RELA; \
+--
+2.14.1
+
diff --git a/app-misc/pax-utils/files/pax-utils-1.2.2-solaris.patch b/app-misc/pax-utils/files/pax-utils-1.2.2-solaris.patch
new file mode 100644
index 000000000000..de1427f99bd7
--- /dev/null
+++ b/app-misc/pax-utils/files/pax-utils-1.2.2-solaris.patch
@@ -0,0 +1,181 @@
+This is the diff for generated sources after applying:
+https://github.com/gentoo/pax-utils/pull/1
+
+diff -ruN pax-utils-1.2.2.orig/autotools/gnulib/Makefile.in pax-utils-1.2.2/autotools/gnulib/Makefile.in
+--- pax-utils-1.2.2.orig/autotools/gnulib/Makefile.in 2017-01-24 21:30:06.000000000 +0100
++++ pax-utils-1.2.2/autotools/gnulib/Makefile.in 2017-03-15 10:59:05.616490166 +0100
+@@ -1483,7 +1484,7 @@
+ $(top_srcdir)/autotools/snippet/c++defs.h \
+ $(top_srcdir)/autotools/snippet/warn-on-use.h stat.c \
+ stat-time.h stdbool.in.h stddef.in.h stdint.in.h stdio.in.h \
+- stdlib.in.h strcasecmp.c strncasecmp.c str-two-way.h \
++ stdlib.in.h stpcpy.c strcasecmp.c strncasecmp.c str-two-way.h \
+ strcasestr.c strdup.c strerror.c strerror-override.c \
+ strerror-override.h string.in.h strings.in.h strncat.c \
+ symlink.c at-func.c symlinkat.c sys_stat.in.h sys_time.in.h \
+@@ -1546,7 +1547,7 @@
+ msvc-nothrow.c open.c openat.c opendir.c printf-frexp.c \
+ readlink.c at-func.c readlinkat.c realloc.c rename.c \
+ at-func2.c renameat.c rmdir.c signbitd.c signbitf.c signbitl.c \
+- stat.c strcasecmp.c strncasecmp.c strcasestr.c strdup.c \
++ stat.c stpcpy.c strcasecmp.c strncasecmp.c strcasestr.c strdup.c \
+ strerror.c strerror-override.c strncat.c symlink.c at-func.c \
+ symlinkat.c unlink.c at-func.c unlinkat.c at-func.c \
+ utimensat.c asnprintf.c printf-args.c printf-parse.c \
+@@ -1708,6 +1709,7 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stat-time.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stat.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/statat.Po@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stpcpy.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strcasecmp.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strcasestr.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strdup.Po@am__quote@
+diff -ruN pax-utils-1.2.2.orig/autotools/gnulib/stpcpy.c pax-utils-1.2.2/autotools/gnulib/stpcpy.c
+--- pax-utils-1.2.2.orig/autotools/gnulib/stpcpy.c 1970-01-01 01:00:00.000000000 +0100
++++ pax-utils-1.2.2/autotools/gnulib/stpcpy.c 2017-03-15 10:59:24.159820259 +0100
+@@ -0,0 +1,49 @@
++/* stpcpy.c -- copy a string and return pointer to end of new string
++ Copyright (C) 1992, 1995, 1997-1998, 2006, 2009-2017 Free Software
++ Foundation, Inc.
++
++ NOTE: The canonical source of this file is maintained with the GNU C Library.
++ Bugs can be reported to bug-glibc@prep.ai.mit.edu.
++
++ This program is free software: you can redistribute it and/or modify it
++ under the terms of the GNU General Public License as published by the
++ Free Software Foundation; either version 3 of the License, or any
++ later version.
++
++ This program is distributed in the hope that it will be useful,
++ but WITHOUT ANY WARRANTY; without even the implied warranty of
++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ GNU General Public License for more details.
++
++ You should have received a copy of the GNU General Public License
++ along with this program. If not, see <http://www.gnu.org/licenses/>. */
++
++#include <config.h>
++
++#include <string.h>
++
++#undef __stpcpy
++#ifdef _LIBC
++# undef stpcpy
++#endif
++
++#ifndef weak_alias
++# define __stpcpy stpcpy
++#endif
++
++/* Copy SRC to DEST, returning the address of the terminating '\0' in DEST. */
++char *
++__stpcpy (char *dest, const char *src)
++{
++ register char *d = dest;
++ register const char *s = src;
++
++ do
++ *d++ = *s;
++ while (*s++ != '\0');
++
++ return d - 1;
++}
++#ifdef weak_alias
++weak_alias (__stpcpy, stpcpy)
++#endif
+diff -ruN pax-utils-1.2.2.orig/config.h.in pax-utils-1.2.2/config.h.in
+--- pax-utils-1.2.2.orig/config.h.in 2017-01-24 21:30:04.000000000 +0100
++++ pax-utils-1.2.2/config.h.in 2017-03-15 11:01:30.156464381 +0100
+@@ -264,6 +264,9 @@
+ /* Define to 1 when the gnulib module stat should be tested. */
+ #undef GNULIB_TEST_STAT
+
++/* Define to 1 when the gnulib module stpcpy should be tested. */
++#undef GNULIB_TEST_STPCPY
++
+ /* Define to 1 when the gnulib module strcasestr should be tested. */
+ #undef GNULIB_TEST_STRCASESTR
+
+@@ -1415,6 +1418,9 @@
+ /* Define to 1 if you have the <stdlib.h> header file. */
+ #undef HAVE_STDLIB_H
+
++/* Define to 1 if you have the `stpcpy' function. */
++#undef HAVE_STPCPY
++
+ /* Define to 1 if you have the `strcasecmp' function. */
+ #undef HAVE_STRCASECMP
+
+diff -ruN pax-utils-1.2.2.orig/configure pax-utils-1.2.2/configure
+--- pax-utils-1.2.2.orig/configure 2017-01-24 21:30:03.000000000 +0100
++++ pax-utils-1.2.2/configure 2017-03-15 11:02:09.889790417 +0100
+@@ -31596,6 +31597,57 @@
+
+
+
++
++
++
++
++
++ for ac_func in stpcpy
++do :
++ ac_fn_c_check_func "$LINENO" "stpcpy" "ac_cv_func_stpcpy"
++if test "x$ac_cv_func_stpcpy" = xyes; then :
++ cat >>confdefs.h <<_ACEOF
++#define HAVE_STPCPY 1
++_ACEOF
++
++fi
++done
++
++ if test $ac_cv_func_stpcpy = no; then
++ HAVE_STPCPY=0
++ fi
++
++ if test $HAVE_STPCPY = 0; then
++
++
++
++
++
++
++
++
++ gl_LIBOBJS="$gl_LIBOBJS stpcpy.$ac_objext"
++
++
++ :
++
++ fi
++
++
++
++
++
++ GNULIB_STPCPY=1
++
++
++
++
++
++$as_echo "#define GNULIB_TEST_STPCPY 1" >>confdefs.h
++
++
++
++
+
+
+ for ac_func in strcasecmp
+diff -ruN pax-utils-1.2.2.orig/Makefile.in pax-utils-1.2.2/Makefile.in
+--- pax-utils-1.2.2.orig/Makefile.in 2017-01-24 21:30:06.000000000 +0100
++++ pax-utils-1.2.2/Makefile.in 2017-03-15 11:03:01.856447406 +0100
+@@ -1522,7 +1523,7 @@
+ security.c \
+ xfuncs.c
+
+-LDADD = libpaxutils.la $(top_builddir)/autotools/gnulib/libgnu.a
++LDADD = libpaxutils.la $(top_builddir)/autotools/gnulib/libgnu.a $(LIB_EACCESS)
+ bin_SCRIPTS = lddtree symtree
+ CLEANFILES = $(bin_SCRIPTS)
+ TMAKE = \