glibc/malloc
Adhemerval Zanella 1bdda52fe9 elf: Move vDSO setup to rtld (BZ#24967)
This patch moves the vDSO setup from libc to loader code, just after
the vDSO link_map setup.  For static case the initialization
is moved to _dl_non_dynamic_init instead.

Instead of using the mangled pointer, the vDSO data is set as
attribute_relro (on _rtld_global_ro for shared or _dl_vdso_* for
static).  It is read-only even with partial relro.

It fixes BZ#24967 now that the vDSO pointer is setup earlier than
malloc interposition is called.

Also, vDSO calls should not be a problem for static dlopen as
indicated by BZ#20802.  The vDSO pointer would be zero-initialized
and the syscall will be issued instead.

Checked on x86_64-linux-gnu, i686-linux-gnu, aarch64-linux-gnu,
arm-linux-gnueabihf, powerpc64le-linux-gnu, powerpc64-linux-gnu,
powerpc-linux-gnu, s390x-linux-gnu, sparc64-linux-gnu, and
sparcv9-linux-gnu.  I also run some tests on mips.

Reviewed-by: Siddhesh Poyarekar <siddhesh@sourceware.org>
2020-01-03 11:22:07 -03:00
..
alloc_buffer_alloc_array.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
alloc_buffer_allocate.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
alloc_buffer_copy_bytes.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
alloc_buffer_copy_string.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
alloc_buffer_create_failure.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
arena.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
Depend malloc: Add nptl, htl dependency for the subdirectory [BZ #24757] 2019-07-02 16:51:13 +02:00
dynarray_at_failure.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
dynarray_emplace_enlarge.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
dynarray_finalize.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
dynarray_resize_clear.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
dynarray_resize.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
dynarray-skeleton.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
dynarray.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
hooks.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
Makefile Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
malloc-hooks.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
malloc-internal.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
malloc.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
malloc.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
mallocbug.c Reformat malloc to gnu style. 2014-01-02 09:40:10 +01:00
mcheck-init.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
mcheck.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
mcheck.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
memusage.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
memusage.sh Update copyright dates not handled by scripts/update-copyrights. 2020-01-01 00:21:22 +00:00
memusagestat.c Update copyright dates not handled by scripts/update-copyrights. 2020-01-01 00:21:22 +00:00
morecore.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
mtrace.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
mtrace.pl Update copyright dates not handled by scripts/update-copyrights. 2020-01-01 00:21:22 +00:00
obstack.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
obstack.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
reallocarray.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
scratch_buffer_grow_preserve.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
scratch_buffer_grow.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
scratch_buffer_set_array_size.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
set-freeres.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
thread-freeres.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-alloc_buffer.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-calloc.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-dynarray-at-fail.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-dynarray-fail.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-dynarray-shared.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-dynarray.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-interpose-aux-nothread.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-interpose-aux-thread.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-interpose-aux.c elf: Move vDSO setup to rtld (BZ#24967) 2020-01-03 11:22:07 -03:00
tst-interpose-aux.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-interpose-nothread.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-interpose-skeleton.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-interpose-static-nothread.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-interpose-static-thread.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-interpose-thread.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-malloc_info.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-malloc-backtrace.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-malloc-fork-deadlock.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-malloc-stats-cancellation.c [BZ #22830] malloc_stats: restore cancellation for stderr correctly. 2018-02-10 16:24:17 -05:00
tst-malloc-tcache-leak.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-malloc-thread-exit.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-malloc-thread-fail.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-malloc-too-large.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-malloc-usable-static-tunables.c Initialize tunable list with the GLIBC_TUNABLES environment variable 2016-12-31 23:49:24 +05:30
tst-malloc-usable-static.c Add framework for tunables 2016-12-31 23:49:24 +05:30
tst-malloc-usable-tunables.c Initialize tunable list with the GLIBC_TUNABLES environment variable 2016-12-31 23:49:24 +05:30
tst-malloc-usable.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-malloc.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-mallocfork2.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-mallocfork.c Fix malloc tests build with GCC 10. 2019-06-10 22:12:08 +00:00
tst-mallocstate.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-mallopt.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-mcheck.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-memalign.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-mtrace.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-mtrace.sh Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-mxfast.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-obstack.c Modify several tests to use test-skeleton.c 2014-11-05 15:24:08 +05:30
tst-posix_memalign.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-pvalloc.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-realloc.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-reallocarray.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-scratch_buffer.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-tcfree1.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-tcfree2.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-tcfree3.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-trim1.c * malloc/tst-trim1.c: New file. 2007-12-16 22:57:57 +00:00
tst-valloc.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
Versions Implement allocation buffers for internal use 2017-06-21 22:43:57 +02:00