Package: elfutils / 0.159-4.2

Metadata

Package Version Patches format
elfutils 0.159-4.2 3.0 (quilt)

Patch series

view the series file
Patch File delta Description
redhat portability.diff | (download)

ChangeLog | 30 30 + 0 - 0 !
backends/ChangeLog | 12 12 + 0 - 0 !
backends/Makefile.am | 2 1 + 1 - 0 !
config/ChangeLog | 4 4 + 0 - 0 !
config/eu.am | 14 11 + 3 - 0 !
configure.ac | 60 58 + 2 - 0 !
lib/ChangeLog | 8 8 + 0 - 0 !
lib/eu-config.h | 11 11 + 0 - 0 !
libasm/ChangeLog | 5 5 + 0 - 0 !
libcpu/ChangeLog | 8 8 + 0 - 0 !
libcpu/i386_disasm.c | 1 1 + 0 - 0 !
libdw/ChangeLog | 13 13 + 0 - 0 !
libdw/dwarf_begin_elf.c | 8 8 + 0 - 0 !
libdw/libdw.h | 2 1 + 1 - 0 !
libdwelf/Makefile.in | 13 8 + 5 - 0 !
libdwfl/ChangeLog | 20 20 + 0 - 0 !
libdwfl/linux-core-attach.c | 29 29 + 0 - 0 !
libdwfl/linux-pid-attach.c | 14 14 + 0 - 0 !
libebl/ChangeLog | 5 5 + 0 - 0 !
libelf/ChangeLog | 10 10 + 0 - 0 !
libelf/common.h | 4 2 + 2 - 0 !
libelf/gnuhash_xlate.h | 6 4 + 2 - 0 !
src/ChangeLog | 30 30 + 0 - 0 !
src/Makefile.am | 5 5 + 0 - 0 !
src/addr2line.c | 4 2 + 2 - 0 !
src/findtextrel.c | 6 5 + 1 - 0 !
src/ld.h | 2 2 + 0 - 0 !
src/readelf.c | 15 10 + 5 - 0 !
src/strings.c | 11 11 + 0 - 0 !
src/strip.c | 20 18 + 2 - 0 !
tests/ChangeLog | 14 14 + 0 - 0 !
tests/Makefile.am | 1 1 + 0 - 0 !
tests/backtrace.c | 1 1 + 0 - 0 !
tests/line2addr.c | 2 1 + 1 - 0 !
34 files changed, 363 insertions(+), 27 deletions(-)

---
hppa_backend.diff | (download)

backends/Makefile.am | 8 6 + 2 - 0 !
backends/libebl_parisc.h | 9 9 + 0 - 0 !
backends/parisc_init.c | 74 74 + 0 - 0 !
backends/parisc_regs.c | 159 159 + 0 - 0 !
backends/parisc_reloc.def | 128 128 + 0 - 0 !
backends/parisc_retval.c | 213 213 + 0 - 0 !
backends/parisc_symbol.c | 112 112 + 0 - 0 !
libelf/elf.h | 11 11 + 0 - 0 !
8 files changed, 712 insertions(+), 2 deletions(-)

---
arm_backend.diff | (download)

backends/arm_init.c | 18 16 + 2 - 0 !
backends/arm_regs.c | 132 132 + 0 - 0 !
backends/arm_retval.c | 44 42 + 2 - 0 !
backends/libebl_arm.h | 9 9 + 0 - 0 !
libelf/elf.h | 11 11 + 0 - 0 !
tests/run-addrcfi.sh | 93 92 + 1 - 0 !
tests/run-allregs.sh | 95 94 + 1 - 0 !
tests/run-readelf-mixed-corenote.sh | 11 5 + 6 - 0 !
8 files changed, 401 insertions(+), 12 deletions(-)

---
mips_backend.diff | (download)

backends/Makefile.am | 8 6 + 2 - 0 !
backends/common-reloc.c | 4 4 + 0 - 0 !
backends/mips_init.c | 60 60 + 0 - 0 !
backends/mips_regs.c | 104 104 + 0 - 0 !
backends/mips_reloc.def | 79 79 + 0 - 0 !
backends/mips_retval.c | 321 321 + 0 - 0 !
backends/mips_symbol.c | 52 52 + 0 - 0 !
libebl/eblopenbackend.c | 2 2 + 0 - 0 !
8 files changed, 628 insertions(+), 2 deletions(-)

---
m68k_backend.diff | (download)

backends/Makefile.am | 8 6 + 2 - 0 !
backends/m68k_init.c | 50 50 + 0 - 0 !
backends/m68k_regs.c | 106 106 + 0 - 0 !
backends/m68k_reloc.def | 45 45 + 0 - 0 !
backends/m68k_retval.c | 172 172 + 0 - 0 !
backends/m68k_symbol.c | 43 43 + 0 - 0 !
libelf/elf.h | 3 3 + 0 - 0 !
7 files changed, 425 insertions(+), 2 deletions(-)

 m68k support

Written by Kurt Roeckx, except for the retval support which was written
by Thorsten Glaser


testsuite ignore elflint.diff | (download)

tests/run-elflint-self.sh | 2 1 + 1 - 0 !
tests/test-subr.sh | 15 15 + 0 - 0 !
2 files changed, 16 insertions(+), 1 deletion(-)

---
scanf format.patch | (download)

src/addr2line.c | 4 2 + 2 - 0 !
tests/line2addr.c | 2 1 + 1 - 0 !
2 files changed, 3 insertions(+), 3 deletions(-)

 use %m[ instead of %a[ in scanf()

%a was a gnu extention, but C99 made this a float.  So it got
changed to %m (supported by glibc 2.7), but %a[ and %as are
still supported by glibc.  The portability branch changed this
from %m to %a again since that's supported by more versions of
glibc.  However gcc gives a warning about this using -Wformat
and we have a new enough libc to use %m.

mips_readelf_w.patch | (download)

src/readelf.c | 3 2 + 1 - 0 !
1 file changed, 2 insertions(+), 1 deletion(-)

 make readelf -w output debug information on mips
Bug-Debian: http://bugs.debian.org/662041
arm_unsupported.patch | (download)

tests/backtrace-subr.sh | 13 10 + 3 - 0 !
tests/run-backtrace-dwarf.sh | 2 1 + 1 - 0 !
2 files changed, 11 insertions(+), 4 deletions(-)

 tests: backtrace-subr.sh add check_native_unsupported.

The special arm check in check_unsupported should only trigger for native
tests, otherwise on arm various backtrace tests would be skipped that
should work just fine.

Signed-off-by: Mark Wielaard <mjw@redhat.com>

arm_syscall.patch | (download)

tests/backtrace.c | 3 2 + 1 - 0 !
1 file changed, 2 insertions(+), 1 deletion(-)

 tests: backtrace.c accept __libc_do_syscall as first frame symname.

On some architectures (Debian armhf) system calls go through
__libc_do_syscall instead of __kernel_vsyscall. Accept either of
these symbol names for the first backtrace frame.

arm_func_value.patch | (download)

backends/arm_init.c | 1 1 + 0 - 0 !
backends/arm_symbol.c | 8 8 + 0 - 0 !
libdwfl/dwfl_module_getsym.c | 4 2 + 2 - 0 !
libebl/Makefile.am | 3 2 + 1 - 0 !
libebl/ebl-hooks.h | 5 4 + 1 - 0 !
libebl/eblsymfuncval.c | 43 43 + 0 - 0 !
libebl/libebl.h | 13 12 + 1 - 0 !
src/elflint.c | 20 13 + 7 - 0 !
8 files changed, 85 insertions(+), 12 deletions(-)

 libebl: add sym_func_value hook.

The ARM EABI says that the zero bit of function symbol st_value indicates
whether the symbol points to a THUMB or ARM function. Add a new ebl hook
to adjust the st_value in such a case so that we get the actual value that
the symbol points to. It isn't easily possible to reuse the existing
resolve_sym_value for this purpose, so we end up with another hook that
can be used from dwfl_module_getsym and elflint.

arm_unwind_ret_mask.patch | (download)

backends/arm_init.c | 3 3 + 0 - 0 !
libdwfl/frame_unwind.c | 6 5 + 1 - 0 !
libebl/eblinitreg.c | 9 8 + 1 - 0 !
libebl/libebl.h | 4 4 + 0 - 0 !
libebl/libeblP.h | 8 7 + 1 - 0 !
5 files changed, 27 insertions(+), 3 deletions(-)

 libebl: add ebl_unwind_ret_mask.

Another ARM oddity. A return value address in an unwind will contain an
extra bit to indicate whether to return to a regular ARM or THUMB function.
Add a new ebl function to return a mask to use to get the actual return
address during an unwind ebl_unwind_ret_mask.

non_linux.patch | (download)

libdwfl/linux-pid-attach.c | 17 17 + 0 - 0 !
1 file changed, 17 insertions(+)

---
unaligned.patch | (download)

libdwfl/linux-core-attach.c | 22 11 + 11 - 0 !
1 file changed, 11 insertions(+), 11 deletions(-)

 [patch] libdwfl: linux-core-attach.c handle possible unaligned data
 access.

Use libdw/memory-access.h macros read_4ubyte_unaligned_noncvt and
read_8ubyte_unaligned_noncvt to access possibly unaligned data in
core files.

Signed-off-by: Mark Wielaard <mjw@redhat.com>

aarch64 run native test fix.patch | (download)

backends/aarch64_retval.c | 1 1 + 0 - 0 !
1 file changed, 1 insertion(+)

---
CVE 2014 9447.patch | (download)

libelf/elf_begin.c | 5 1 + 4 - 0 !
1 file changed, 1 insertion(+), 4 deletions(-)

 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 '/'.


arm64.patch | (download)

backends/aarch64_initreg.c | 9 7 + 2 - 0 !
backends/arm_initreg.c | 6 5 + 1 - 0 !
configure.ac | 13 13 + 0 - 0 !
3 files changed, 25 insertions(+), 3 deletions(-)

---