This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
[PATCH 0/4] Avoid malloc symbol interposition in the dynamic loader [BZ #25486]
- From: Florian Weimer <fweimer at redhat dot com>
- To: libc-alpha at sourceware dot org
- Date: Sat, 08 Feb 2020 20:00:40 +0100
- Subject: [PATCH 0/4] Avoid malloc symbol interposition in the dynamic loader [BZ #25486]
I initially wanted to close this bug, but Carlos suggested to treat it
as an RFE. The changes seem a net improvement to me.
This does not completely resolve the issue because we use symbol
interposition for other, more obscure things.
Florian Weimer (4):
elf: Introduce the rtld-stubbed-symbols makefile variable
elf: Extract _dl_sym_post, _dl_sym_find_caller_map from elf/dl-sym.c
Remove weak declaration of free from <inline-hashtab.h>
ld.so: Do not export free/calloc/malloc/realloc functions [BZ #25486]
elf/Makefile | 26 +++--
elf/Versions | 3 -
elf/dl-lookup.c | 4 +-
elf/dl-minimal.c | 96 +++++++++++++---
elf/dl-sym-post.h | 106 ++++++++++++++++++
elf/dl-sym.c | 86 +-------------
elf/rtld.c | 12 ++
include/inline-hashtab.h | 15 +--
include/libc-symbols.h | 9 +-
include/malloc.h | 2 +
include/rtld-malloc.h | 85 ++++++++++++++
include/stdlib.h | 2 +
sysdeps/generic/localplt.data | 6 -
sysdeps/mach/hurd/i386/ld.abilist | 4 -
sysdeps/mach/hurd/i386/localplt.data | 6 -
sysdeps/unix/sysv/linux/aarch64/ld.abilist | 4 -
sysdeps/unix/sysv/linux/aarch64/localplt.data | 6 -
sysdeps/unix/sysv/linux/alpha/ld.abilist | 4 -
sysdeps/unix/sysv/linux/alpha/localplt.data | 6 -
sysdeps/unix/sysv/linux/arm/be/ld.abilist | 4 -
sysdeps/unix/sysv/linux/arm/le/ld.abilist | 4 -
sysdeps/unix/sysv/linux/arm/localplt.data | 6 -
sysdeps/unix/sysv/linux/csky/ld.abilist | 4 -
sysdeps/unix/sysv/linux/csky/localplt.data | 6 -
sysdeps/unix/sysv/linux/hppa/ld.abilist | 4 -
sysdeps/unix/sysv/linux/hppa/localplt.data | 6 -
sysdeps/unix/sysv/linux/i386/ld.abilist | 4 -
sysdeps/unix/sysv/linux/i386/localplt.data | 6 -
sysdeps/unix/sysv/linux/ia64/ld.abilist | 4 -
sysdeps/unix/sysv/linux/ia64/localplt.data | 6 -
.../unix/sysv/linux/m68k/coldfire/ld.abilist | 4 -
.../sysv/linux/m68k/coldfire/localplt.data | 6 -
.../unix/sysv/linux/m68k/m680x0/ld.abilist | 4 -
.../unix/sysv/linux/m68k/m680x0/localplt.data | 6 -
sysdeps/unix/sysv/linux/microblaze/ld.abilist | 4 -
.../unix/sysv/linux/microblaze/localplt.data | 6 -
.../unix/sysv/linux/mips/mips32/ld.abilist | 4 -
.../sysv/linux/mips/mips64/n32/ld.abilist | 4 -
.../sysv/linux/mips/mips64/n64/ld.abilist | 4 -
sysdeps/unix/sysv/linux/nios2/ld.abilist | 4 -
sysdeps/unix/sysv/linux/nios2/localplt.data | 6 -
.../linux/powerpc/powerpc32/fpu/localplt.data | 6 -
.../sysv/linux/powerpc/powerpc32/ld.abilist | 4 -
.../powerpc/powerpc32/nofpu/localplt.data | 6 -
.../linux/powerpc/powerpc64/be/ld.abilist | 4 -
.../linux/powerpc/powerpc64/le/ld.abilist | 4 -
.../linux/powerpc/powerpc64/localplt.data | 6 -
sysdeps/unix/sysv/linux/riscv/localplt.data | 6 -
sysdeps/unix/sysv/linux/riscv/rv64/ld.abilist | 4 -
sysdeps/unix/sysv/linux/s390/localplt.data | 6 -
.../unix/sysv/linux/s390/s390-32/ld.abilist | 4 -
.../unix/sysv/linux/s390/s390-64/ld.abilist | 4 -
sysdeps/unix/sysv/linux/sh/be/ld.abilist | 4 -
sysdeps/unix/sysv/linux/sh/le/ld.abilist | 4 -
sysdeps/unix/sysv/linux/sh/localplt.data | 6 -
.../unix/sysv/linux/sparc/sparc32/ld.abilist | 4 -
.../sysv/linux/sparc/sparc32/localplt.data | 6 -
.../unix/sysv/linux/sparc/sparc64/ld.abilist | 4 -
.../sysv/linux/sparc/sparc64/localplt.data | 6 -
sysdeps/unix/sysv/linux/x86_64/64/ld.abilist | 4 -
sysdeps/unix/sysv/linux/x86_64/x32/ld.abilist | 4 -
sysdeps/x86_64/localplt.data | 6 -
62 files changed, 326 insertions(+), 364 deletions(-)
create mode 100644 elf/dl-sym-post.h
create mode 100644 include/rtld-malloc.h
--
2.24.1