platform_bionic/libc
Evgenii Stepanov be551f596f HWASan support in bionic.
* Allow sanitization of libc (excluding existing global sanitizers)
  and disallow sanitization of linker. The latter has not been
  necessary before because HWASan is the first sanitizer to support
  static binaries (with the exception of CFI, which is not used
  globally).
* Static binary startup: initialize HWASan shadow very early so that
  almost entire libc can be sanitized. The rest of initialization is
  done in a global constructor; until that is done sanitized code can
  run but can't report errors (will simply crash with SIGTRAP).
* Switch malloc_common from je_*  to __sanitizer_*.
* Call hwasan functions when entering and leaving threads. We can not
  intercept pthread_create when libc depends on libclang_rt.hwasan.
  An alternative to this would be a callback interface like requested
  here:
    https://sourceware.org/glibc/wiki/ThreadPropertiesAPI

All of the above is behind a compile-time check
__has_feature(hwaddress_sanitizer). This means that HWASan actually
requires libc to be instrumented, and would not work otherwise. It's
an implementation choice that greatly reduces complexity of the tool.
Instrumented libc also guarantees that hwasan is present and
initialized in every process, which allows piecemeal sanitization
(i.e. library w/o main executable, or even individual static
libraries), unlike ASan.

Change-Id: If44c46b79b15049d1745ba46ec910ae4f355d19c
2018-08-21 00:15:47 +00:00
..
arch-arm Remove workarounds for old versions of clang and GCC. 2018-07-11 13:18:29 -07:00
arch-arm64 Make memcpy memmove 2018-06-11 18:12:45 +00:00
arch-common/bionic Call __emutls_unregister_key on dlclose 2018-06-19 13:22:36 -07:00
arch-mips Remove __overloadable/__RENAME_CLANG 2018-02-06 13:35:56 -08:00
arch-mips64 bionic: add vdso clock_getres 2017-12-07 09:41:48 -08:00
arch-x86 Merge "Remove valgrind workarounds." 2018-06-13 00:30:28 +00:00
arch-x86_64 Make memcpy memmove 2018-06-11 18:12:45 +00:00
async_safe Modernize codebase by replacing NULL with nullptr 2018-08-02 18:09:44 -07:00
bionic HWASan support in bionic. 2018-08-21 00:15:47 +00:00
dns Clear the resolver timeout when setting default __res_params 2018-08-09 17:58:35 +09:00
include Merge "Reland "Retire GCC FORTIFY."" 2018-08-08 15:26:37 +00:00
kernel Update to v4.17.3 kernel headers. 2018-06-27 14:12:29 -07:00
malloc_debug Add more descriptive text around app starting. 2018-08-16 17:57:23 -07:00
malloc_hooks Fix malloc_hooks for hooks_write_malloc_leak_info. 2018-07-18 15:25:45 +01:00
private libc: enable -Wimplicit-fallthrough 2018-08-15 10:11:08 -07:00
seccomp seccomp: Generate the policy files at compile time 2018-08-06 11:10:25 -07:00
stdio libc: enable -Wimplicit-fallthrough 2018-08-15 10:11:08 -07:00
stdlib Reimplement popen(3)/pclose(3). 2018-07-11 12:15:26 -07:00
system_properties Modernize codebase by replacing NULL with nullptr 2018-08-02 18:09:44 -07:00
tools seccomp: Generate the policy files at compile time 2018-08-06 11:10:25 -07:00
tzcode Add strptime %s. 2018-02-28 16:29:40 -08:00
upstream-freebsd Change ARG_MAX/_SC_ARG_MAX back to a constant. 2017-11-15 15:14:35 -08:00
upstream-netbsd Reimplement popen(3)/pclose(3). 2018-07-11 12:15:26 -07:00
upstream-openbsd Reimplement popen(3)/pclose(3). 2018-07-11 12:15:26 -07:00
versioner-dependencies Unified sysroot: kill arch-specific include dirs. 2017-10-12 13:19:51 -07:00
Android.bp HWASan support in bionic. 2018-08-21 00:15:47 +00:00
fs_config_generator.py
libc.arm.map fdsan: expose the address of the table to the platform. 2018-08-06 18:48:52 -07:00
libc.arm64.map fdsan: expose the address of the table to the platform. 2018-08-06 18:48:52 -07:00
libc.map.txt fdsan: expose the address of the table to the platform. 2018-08-06 18:48:52 -07:00
libc.mips.map fdsan: expose the address of the table to the platform. 2018-08-06 18:48:52 -07:00
libc.mips64.map fdsan: expose the address of the table to the platform. 2018-08-06 18:48:52 -07:00
libc.x86.map fdsan: expose the address of the table to the platform. 2018-08-06 18:48:52 -07:00
libc.x86_64.map fdsan: expose the address of the table to the platform. 2018-08-06 18:48:52 -07:00
libstdc++.arm.map
libstdc++.arm64.map
libstdc++.map.txt
libstdc++.mips.map
libstdc++.mips64.map
libstdc++.x86.map
libstdc++.x86_64.map
MODULE_LICENSE_BSD
NOTICE Update to FreeBSD libm r336665. 2018-07-24 10:36:00 -07:00
SECCOMP_BLACKLIST_APP.TXT Allow several syscalls to app process 2018-03-28 16:30:20 -07:00
SECCOMP_BLACKLIST_COMMON.TXT Split zygote's seccomp filter into two 2018-01-04 12:28:40 -08:00
SECCOMP_WHITELIST_APP.TXT seccomp: Allow read(2) and getdents(2) in x86_64 for UBSan's sake 2018-08-09 12:32:01 -07:00
SECCOMP_WHITELIST_COMMON.TXT seccomp: Allow readlink(2) in x86_64 for UBSan's sake 2018-08-03 10:36:02 -07:00
SECCOMP_WHITELIST_GLOBAL.TXT
SECCOMP_WHITELIST_SYSTEM.TXT Add bpf syscall to seccomp whitelist 2018-01-18 12:08:34 -08:00
SYSCALLS.TXT Add sigset64_t and accompanying functions. 2018-01-30 18:47:16 -08:00
version_script.txt