Run check-localpltk/textrel/execstack over ld.so

System Internals / glibc - Carlos O'Donell [redhat.com] - 6 November 2014 14:48 UTC

For maximum paranoia we run ld.so through the normal set of tests for all of the shared libraries. This includes running ld.so through check-localplt, check-textrel, and check-execstack. While none of these should trigger any failures given the way ld.so is built, it might possibly fail if a developer does something wrong. This paranoia was triggered by a discussion over the use of __strcpy
vs. strcpy [1] and if the symbol could leak and use the libc.so version.

The check-localplt test fails right away because localplt.data needs updating for all arches. By default we add 6 new symbols: __tls_get_addr, __libc_memalign, malloc, calloc, realloc and free. Other machines like i386, power, and s390 require some different symbol sets e.g. ___tls_get_addr vs. __tls_get_addr for i386.

Verified for i386
Verified for x86_64
Verified for ppc32
Verified for ppc64
Verified for ppc64le
Verified for arm
Verified for aarch64
Verified for s390
Verified for s390x Guessed for alpha Guessed for ia64 Guessed for m68k Guessed for microblaze Guessed for sparc32 Guessed for sparc64 Defaults for sh Defaults for mips Defaults for hppa Defaults for tile

Machine manintainers notified to double check the data used in localplt.data.

[1] https://sourceware.org/ml/libc-alpha/2014-10/msg00548.html

da53d6d Run check-localpltk/textrel/execstack over ld.so.
ChangeLog | 25 ++++++++++++++++++++
elf/Makefile | 3 ++-
sysdeps/generic/localplt.data | 9 +++++++
sysdeps/unix/sysv/linux/aarch64/localplt.data | 9 +++++++
sysdeps/unix/sysv/linux/alpha/localplt.data | 9 +++++++
sysdeps/unix/sysv/linux/arm/localplt.data | 9 +++++++
sysdeps/unix/sysv/linux/i386/localplt.data | 11 +++++++++
sysdeps/unix/sysv/linux/ia64/localplt.data | 9 +++++++
sysdeps/unix/sysv/linux/m68k/localplt.data | 9 +++++++
sysdeps/unix/sysv/linux/microblaze/localplt.data | 9 +++++++
.../sysv/linux/powerpc/powerpc32/fpu/localplt.data | 8 +++++++
.../linux/powerpc/powerpc32/nofpu/localplt.data | 8 +++++++
.../sysv/linux/powerpc/powerpc64/localplt.data | 8 +++++++
sysdeps/unix/sysv/linux/s390/localplt.data | 8 +++++++
.../unix/sysv/linux/sparc/sparc32/localplt.data | 9 +++++++
.../unix/sysv/linux/sparc/sparc64/localplt.data | 9 +++++++
16 files changed, 151 insertions(+), 1 deletion(-)

Upstream: sourceware.org


  • Share