platform_bionic/libc
Daniel Micay df1a3c6d21 make vdso function pointers read-only at runtime
Global, writable function pointers are low-hanging fruit for hijacking
control flow with an overflow from a global buffer or an arbitrary write
vulnerability. This moves the function pointer table into a dedicated
page and makes it read-only at runtime, similar to RELRO.

This increases the memory usage of the library by just under one page.
This could be avoided by having the linker load the vdso by replacing
weak symbols. It's not significant within the Zygote spawning model
though because it's read-only after early init.

Change-Id: Id7a49c96c1b15c2e1926528304b3c54a81e78caf
2015-07-17 11:11:42 -07:00
..
arch-arm Replace bx lr with update of pc from the stack. 2015-07-08 11:20:27 -07:00
arch-arm64 Merge "Add support for cortex-a53 in bionic." 2015-06-16 19:04:14 +00:00
arch-common/bionic Properly align init/fini_arrays for crtend.o 2015-05-07 11:57:53 -07:00
arch-mips [MIPS] Add optimized string functions 2015-06-17 17:02:10 +02:00
arch-mips64 [MIPS] Add optimized string functions 2015-06-17 17:02:10 +02:00
arch-x86 Hide accidentally-exposed __clock_nanosleep. 2015-06-15 19:39:04 -07:00
arch-x86_64 Hide accidentally-exposed __clock_nanosleep. 2015-06-15 19:39:04 -07:00
bionic make vdso function pointers read-only at runtime 2015-07-17 11:11:42 -07:00
dns Fix alignment after variable-length data. 2015-07-06 14:43:28 -07:00
include Add timespec/timeval conversion helpers. 2015-07-16 13:10:50 -07:00
kernel Update to v3.18.18 kernel headers. 2015-07-13 17:21:18 -07:00
private ScopedFd: Don't use TEMP_FAILURE_RETRY() with close() 2015-05-13 13:27:11 -07:00
stdio Don't use TEMP_FAILURE_RETRY on close in bionic. 2015-05-15 16:20:07 -07:00
stdlib Hide __atexit 2015-06-04 14:33:18 -07:00
tools Strip version info when extracting symbols 2015-06-04 17:56:02 +00:00
tzcode Changes to re-enable overrides for tz data 2015-03-25 16:08:37 +00:00
upstream-dlmalloc Return total footprint, not high water mark. 2014-10-13 12:45:35 -07:00
upstream-freebsd Clean up <stdlib.h> slightly. 2015-01-26 14:28:41 -08:00
upstream-netbsd Remove bogus transitive includes. 2014-12-29 13:29:50 -08:00
upstream-openbsd Hide __atexit 2015-06-04 14:33:18 -07:00
zoneinfo Update timezone data to 2015e 2015-06-30 14:48:06 +01:00
Android.mk Use gcc to build and test x86_64 long double code. 2015-06-23 23:13:39 +00:00
crt.mk Make .note.android.ident section type SH_NOTE 2015-02-12 21:37:20 -08:00
libc.map Pass around struct android_net_context for better behaviour 2015-06-29 18:39:54 +09:00
MODULE_LICENSE_BSD
NOTICE Update NOTICE files (the second time today). 2015-05-12 10:44:37 -07:00
SYSCALLS.TXT Hide accidentally-exposed __clock_nanosleep. 2015-06-15 19:39:04 -07:00
version_script.txt Revert "Fix volantis boot." 2015-05-07 15:12:24 -07:00