diff options
author | V3n3RiX <venerix@redcorelinux.org> | 2017-10-09 18:53:29 +0100 |
---|---|---|
committer | V3n3RiX <venerix@redcorelinux.org> | 2017-10-09 18:53:29 +0100 |
commit | 4f2d7949f03e1c198bc888f2d05f421d35c57e21 (patch) | |
tree | ba5f07bf3f9d22d82e54a462313f5d244036c768 /app-misc/pax-utils/files |
reinit the tree, so we can have metadata
Diffstat (limited to 'app-misc/pax-utils/files')
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 = \ |