platform_bionic/linker
Torne (Richard Coles) fa9f7f28d4 Fix DLEXT_WRITE_RELRO when loading multiple libs.
ANDROID_DLEXT_WRITE_RELRO was causing the GNU RELRO sections of
libraries to become corrupted if more than one library was being loaded
at once (i.e. if the root library has DT_NEEDED entries for libraries
that weren't already loaded). The file offset was not being correctly
propagated between calls, so after writing out the (correct) RELRO data
to the file, it was mapping the data at file offset 0 for all libraries,
which corrupted the data for all but one of the libraries.

Fix this by passing file_offset as a pointer the same way that
phdr_table_map_gnu_relro does.

Bug: 128623590
Test: tbd
Change-Id: I196cd336bd5a67454e89fd85487356b1c7856871
2019-04-02 18:06:12 -04:00
..
arch Implement arm64 TLSDESC 2019-01-29 08:33:09 +00:00
Android.bp Don't install *.mountpoint targets 2019-03-14 07:35:52 +09:00
dlfcn.cpp Move dlerror out of a TLS slot and into a pthread_internal_t member. 2018-12-06 05:19:57 +00:00
ld.config.format.md linker: Add support for "whitelisted" property in linker config files 2019-03-20 10:20:49 -07:00
ld_android.cpp Expose libc_shared_globals to libc.so with symbol 2018-11-28 14:26:14 -08:00
linked_list.h Clean up bionic_macros.h a bit. 2018-10-25 11:00:00 -07:00
linked_list_test.cpp Switch linker tests to Android.bp. 2019-02-15 14:40:08 -08:00
linker.arm.map Expose libc_shared_globals to libc.so with symbol 2018-11-28 14:26:14 -08:00
linker.cpp Fix DLEXT_WRITE_RELRO when loading multiple libs. 2019-04-02 18:06:12 -04:00
linker.generic.map Expose libc_shared_globals to libc.so with symbol 2018-11-28 14:26:14 -08:00
linker.h linker: allow using reserved space for multiple libraries. 2019-02-20 17:29:36 -05:00
linker_block_allocator.cpp Cosmetic changes to linker allocator and config 2019-03-12 01:11:24 +00:00
linker_block_allocator.h Purge linker block allocators before leaving linker 2019-01-30 22:13:13 -08:00
linker_block_allocator_test.cpp Switch linker tests to Android.bp. 2019-02-15 14:40:08 -08:00
linker_cfi.cpp Add PR_SET_VMA and PR_SET_VMA_ANON_NAME to <sys/prctl.h>. 2018-08-22 10:36:23 -07:00
linker_cfi.h Switch the rest of our internal headers to #pragma once. 2018-02-13 14:27:17 -08:00
linker_common_types.h Clean up bionic_macros.h a bit. 2018-10-25 11:00:00 -07:00
linker_config.cpp Use std::move() for rvalue-reference setters and ctors 2019-03-20 10:20:49 -07:00
linker_config.h Use std::move() for rvalue-reference setters and ctors 2019-03-20 10:20:49 -07:00
linker_config_test.cpp linker: Add support for "whitelisted" property in linker config files 2019-03-20 10:20:49 -07:00
linker_debug.h libasync_safe: stop clobbering other folks' identifiers. 2019-02-14 14:23:13 -08:00
linker_dlwarning.cpp Unify linker files under one license (BSD) 2017-02-15 15:35:33 -08:00
linker_dlwarning.h Switch the rest of our internal headers to #pragma once. 2018-02-13 14:27:17 -08:00
linker_exidx_static.c Implement __gnu_Unwind_Find_exidx/__cxa_type_match 2017-08-29 18:18:27 +02:00
linker_gdb_support.cpp Unify linker files under one license (BSD) 2017-02-15 15:35:33 -08:00
linker_gdb_support.h Switch the rest of our internal headers to #pragma once. 2018-02-13 14:27:17 -08:00
linker_globals.cpp Be clearer about linker warnings. 2018-02-28 12:37:28 -08:00
linker_globals.h Be clearer about linker warnings. 2018-02-28 12:37:28 -08:00
linker_libc_support.c Unify linker files under one license (BSD) 2017-02-15 15:35:33 -08:00
linker_libcxx_support.cpp Adapt to the new libc++/libc++abi update. 2018-01-08 14:44:42 -08:00
linker_logger.cpp linker: only generate log messages when logging is enabled 2019-01-17 14:24:14 -08:00
linker_logger.h Add more linker debug. 2019-03-19 14:03:18 +00:00
linker_main.cpp Add more linker debug. 2019-03-19 14:03:18 +00:00
linker_main.h Allow invoking the linker on an executable. 2018-10-10 14:31:06 -07:00
linker_mapped_file_fragment.cpp Unify linker files under one license (BSD) 2017-02-15 15:35:33 -08:00
linker_mapped_file_fragment.h Clean up bionic_macros.h a bit. 2018-10-25 11:00:00 -07:00
linker_memory.cpp Move the linker allocator into libc 2019-01-25 15:31:35 -08:00
linker_mips.cpp MIPS: Fix MIPS linker VDSO issues 2017-10-13 12:08:30 +02:00
linker_namespaces.cpp linker: Add support for "whitelisted" property in linker config files 2019-03-20 10:20:49 -07:00
linker_namespaces.h Use std::move() for rvalue-reference setters and ctors 2019-03-20 10:20:49 -07:00
linker_phdr.cpp Fix DLEXT_WRITE_RELRO when loading multiple libs. 2019-04-02 18:06:12 -04:00
linker_phdr.h Fix DLEXT_WRITE_RELRO when loading multiple libs. 2019-04-02 18:06:12 -04:00
linker_reloc_iterators.h Switch the rest of our internal headers to #pragma once. 2018-02-13 14:27:17 -08:00
linker_relocs.h Add generic TLS linker reloc macros 2019-01-02 14:36:26 -08:00
linker_sdk_versions.cpp Move API levels from uint32_t to int. 2018-11-13 21:25:07 -08:00
linker_sleb128.h Switch the rest of our internal headers to #pragma once. 2018-02-13 14:27:17 -08:00
linker_sleb128_test.cpp Switch linker tests to Android.bp. 2019-02-15 14:40:08 -08:00
linker_soinfo.cpp support LIB in runpath 2019-01-24 17:00:37 +09:00
linker_soinfo.h linker: allow using reserved space for multiple libraries. 2019-02-20 17:29:36 -05:00
linker_test_globals.cpp Switch linker tests to Android.bp. 2019-02-15 14:40:08 -08:00
linker_tls.cpp libasync_safe: stop clobbering other folks' identifiers. 2019-02-14 14:23:13 -08:00
linker_tls.h Implement arm64 TLSDESC 2019-01-29 08:33:09 +00:00
linker_utils.cpp Merge "linker: changes to init work arounds" 2018-11-29 16:50:37 +00:00
linker_utils.h linker: changes to init work arounds 2018-11-08 21:50:19 +00:00
linker_utils_test.cpp Switch linker tests to Android.bp. 2019-02-15 14:40:08 -08:00
linker_wrapper.cpp Rework the linker_wrapper to work with lld 2018-10-22 22:52:25 +00:00
MODULE_LICENSE_BSD Unify linker files under one license (BSD) 2017-02-15 15:35:33 -08:00
rt.cpp