llvm-project/compiler-rt/lib/sanitizer_common
Evgeniy Stepanov 989299c42b [asan] Use dynamic shadow on 32-bit Android.
Summary:
The following kernel change has moved ET_DYN base to 0x4000000 on arm32:
https://marc.info/?l=linux-kernel&m=149825162606848&w=2

Switch to dynamic shadow base to avoid such conflicts in the future.

Reserve shadow memory in an ifunc resolver, but don't use it in the instrumentation
until PR35221 is fixed. This will eventually let use save one load per function.

Reviewers: kcc

Subscribers: aemerson, srhines, kubamracek, kristof.beyls, hiraditya, llvm-commits

Differential Revision: https://reviews.llvm.org/D39393

llvm-svn: 317943
2017-11-10 22:27:48 +00:00
..
scripts [sanitizer] Add Scudo to the sanitizer lint checks. 2017-11-08 16:42:29 +00:00
symbolizer [sanitizer] Fix internal symbolized build on Debian 9 2017-10-26 06:08:01 +00:00
tests Fix warning + death test + failing test on Windows (D39072). 2017-10-30 19:06:59 +00:00
.clang-format Tell clang-format that (most) sanitizers are written using Google style guide. 2015-11-19 22:11:10 +00:00
.clang-tidy [sanitizers] specifying style for global constant 2016-11-17 21:57:43 +00:00
CMakeLists.txt [sanitizer] Move the errno/ENOMEM allocator checks logic to separate .cc 2017-10-11 21:20:04 +00:00
sancov_flags.cc General definition for weak functions 2017-01-29 05:44:59 +00:00
sancov_flags.h [sancov] Move __sancov_default_options declaration outside the namespace __sancov 2017-02-01 01:36:19 +00:00
sancov_flags.inc Revert "[sancov] moving sancov rt to sancov/ directory" 2017-01-12 01:37:35 +00:00
sanitizer_addrhashmap.h adding operator* to help working with primitive values 2016-11-16 19:35:37 +00:00
sanitizer_allocator.cc [Sanitizers] ASan/MSan/LSan allocators set errno on failure. 2017-07-18 19:11:04 +00:00
sanitizer_allocator.h [sanitizer] Random shuffling of chunks for the 32-bit Primary Allocator 2017-10-25 17:24:56 +00:00
sanitizer_allocator_bytemap.h [sanitizers] split sanitizer_allocator.h into a number of smaller .h files; NFC 2016-07-20 22:06:41 +00:00
sanitizer_allocator_checks.cc [sanitizer] Move the errno/ENOMEM allocator checks logic to separate .cc 2017-10-11 21:20:04 +00:00
sanitizer_allocator_checks.h [sanitizer] Move the errno/ENOMEM allocator checks logic to separate .cc 2017-10-11 21:20:04 +00:00
sanitizer_allocator_combined.h [Sanitizers] New sanitizer API to purge allocator quarantine. 2017-10-23 17:12:07 +00:00
sanitizer_allocator_interface.h [Sanitizers] New sanitizer API to purge allocator quarantine. 2017-10-23 17:12:07 +00:00
sanitizer_allocator_internal.h [Sanitizers] Move cached allocator_may_return_null flag to sanitizer_allocator 2017-06-20 21:23:02 +00:00
sanitizer_allocator_local_cache.h [sanitizer] Re-introduce kUseSeparateSizeClassForBatch for the 32-bit Primary 2017-08-28 15:20:02 +00:00
sanitizer_allocator_primary32.h [sanitizer] Random shuffling of chunks for the 32-bit Primary Allocator 2017-10-25 17:24:56 +00:00
sanitizer_allocator_primary64.h Update sanitizer_allocator to use new API. 2017-11-07 16:19:24 +00:00
sanitizer_allocator_secondary.h [Sanitizers] Move cached allocator_may_return_null flag to sanitizer_allocator 2017-06-20 21:23:02 +00:00
sanitizer_allocator_size_class_map.h [sanitizer] Re-introduce kUseSeparateSizeClassForBatch for the 32-bit Primary 2017-08-28 15:20:02 +00:00
sanitizer_allocator_stats.h [sanitizers] split sanitizer_allocator.h into a number of smaller .h files; NFC 2016-07-20 22:06:41 +00:00
sanitizer_asm.h [tsan] Port tsan_rtl_amd64.S to OS X to add support for setjmp/longjmp 2015-11-28 12:44:23 +00:00
sanitizer_atomic.h Return memory to OS right after free (not in the async thread). 2016-11-29 00:22:50 +00:00
sanitizer_atomic_clang.h [mips][compiler-rt] Fix build breakage. 2017-06-21 11:29:15 +00:00
sanitizer_atomic_clang_other.h [mips][compiler-rt] Fix build breakage. 2017-06-21 11:29:15 +00:00
sanitizer_atomic_clang_x86.h
sanitizer_atomic_msvc.h [asan Win64] Implement atomic_compare_exchange_strong for 8 bit 2016-07-06 16:33:57 +00:00
sanitizer_bitvector.h Revert "Apply modernize-use-default to compiler-rt." 2015-10-30 18:52:31 +00:00
sanitizer_bvgraph.h
sanitizer_common.cc [sanitizer] Remove references and hide CommonSanitizerReportMutex 2017-11-10 02:07:11 +00:00
sanitizer_common.h [asan] Use dynamic shadow on 32-bit Android. 2017-11-10 22:27:48 +00:00
sanitizer_common_interceptors.inc [Sanitizers] Check pthread_setcancel{state|type} interceptor arguments for != nullptr. 2017-11-06 17:43:28 +00:00
sanitizer_common_interceptors_format.inc [asan] print the 'unexpected format specifier in printf interceptor' warning just once (came up in https://github.com/google/oss-fuzz/pull/562). Not touching a similar scanf warning -- for some reason it does not fire for me. 2017-05-03 18:38:34 +00:00
sanitizer_common_interceptors_ioctl.inc sanitizer_common: Fix warning 2016-08-16 18:28:55 +00:00
sanitizer_common_interface.inc [Sanitizers] New sanitizer API to purge allocator quarantine. 2017-10-23 17:12:07 +00:00
sanitizer_common_interface_posix.inc [sanitizer] Add list of symbols exported in sanitizers' interface. 2017-01-31 20:23:21 +00:00
sanitizer_common_libcdep.cc [sanitizer] Remove references and hide CommonSanitizerReportMutex 2017-11-10 02:07:11 +00:00
sanitizer_common_nolibc.cc tsan: fix build after 287632 2016-11-22 11:09:35 +00:00
sanitizer_common_syscalls.inc [sanitizer] Add syscall handlers for sigaction and rt_sigaction. 2016-06-24 23:09:44 +00:00
sanitizer_coverage_fuchsia.cc [Fuchsia] Magenta -> Zircon 2017-09-13 01:18:15 +00:00
sanitizer_coverage_interface.inc [sanitizer_common] Update sanitizers w.r.t. the new comparisons instrumentation API 2017-08-10 14:22:57 +00:00
sanitizer_coverage_libcdep_new.cc [SanitizeCoverage] Enable stack-depth coverage for -fsanitize=fuzzer 2017-08-30 22:49:31 +00:00
sanitizer_coverage_win_dll_thunk.cc [sanitizer] Intercept weak functions in dll_thunks. 2017-02-02 23:01:34 +00:00
sanitizer_coverage_win_dynamic_runtime_thunk.cc [sanitizer] Add dynamic_runtime_thunk for different sanitizers. 2017-02-02 23:01:41 +00:00
sanitizer_coverage_win_sections.cc [sancov] Define delimiters for sanitizer coverage's binary section on Windows. 2017-02-02 23:02:15 +00:00
sanitizer_coverage_win_weak_interception.cc [sanitizer] Use interception to access to strong definitions in the executable. 2017-02-02 23:02:11 +00:00
sanitizer_dbghelp.h [asan/win] Delay load dbghelp.dll to delay ucrtbase.dll initialization 2016-11-14 17:37:50 +00:00
sanitizer_deadlock_detector.h
sanitizer_deadlock_detector1.cc [tsan] Don't abort when a deadlock detector finds a mutex cycle longer than 10 2016-05-21 08:31:13 +00:00
sanitizer_deadlock_detector2.cc
sanitizer_deadlock_detector_interface.h [tsan] Don't abort when a deadlock detector finds a mutex cycle longer than 10 2016-05-21 08:31:13 +00:00
sanitizer_errno.cc [Sanitizers] Consolidate internal errno definitions. 2017-07-06 00:50:57 +00:00
sanitizer_errno.h Add NetBSD support in sanitizer_errno.h 2017-08-05 18:10:51 +00:00
sanitizer_errno_codes.h [Sanitizers] Consolidate internal errno definitions. 2017-07-06 00:50:57 +00:00
sanitizer_file.cc [sanitizer_common] Disable filesystem-related code for Fuchsia 2017-08-01 21:28:39 +00:00
sanitizer_file.h [sanitizer_common] Move filesystem-related code out of sanitizer_common.cc 2017-07-22 01:46:40 +00:00
sanitizer_flag_parser.cc [sanitizer] Implement include_if_exists with process name substitution. 2015-07-21 23:03:13 +00:00
sanitizer_flag_parser.h [sanitizer] Do not over-dup string flags 2017-08-21 21:25:38 +00:00
sanitizer_flags.cc [ASan] Report illegal instruction exceptions in ASan 2016-08-03 18:13:14 +00:00
sanitizer_flags.h [asan] Use dynamic shadow on 32-bit Android. 2017-11-10 22:27:48 +00:00
sanitizer_flags.inc [Sanitizers] Set default allocator_release_to_os_interval_ms to 5 seconds 2017-10-26 17:59:24 +00:00
sanitizer_freebsd.h
sanitizer_fuchsia.cc [asan] Use dynamic shadow on 32-bit Android. 2017-11-10 22:27:48 +00:00
sanitizer_fuchsia.h [sanitizer_common] Don't provide sanitizer_procmaps API functions where not defined 2017-09-25 20:48:51 +00:00
sanitizer_getauxval.h [LSan] Detect dynamic loader by its base address. 2017-11-06 21:27:06 +00:00
sanitizer_interface_internal.h [sanitizer_common] Update sanitizers w.r.t. the new comparisons instrumentation API 2017-08-10 14:22:57 +00:00
sanitizer_internal_defs.h Add NetBSD improvements in sanitizers 2017-10-25 17:09:05 +00:00
sanitizer_lfstack.h [sanitizer] Fix Clang-tidy modernize-use-nullptr warnings in lib/sanitizer_common headers, unify closing inclusion guards. Patch by Eugene Zelenko 2015-09-29 18:23:36 +00:00
sanitizer_libc.cc [compiler-rt] Add internal wcslen to avoid crashing on windows 64-bits 2016-07-14 22:13:41 +00:00
sanitizer_libc.h Fix clang-cl warning and crash in sanitizers 2016-07-21 18:31:01 +00:00
sanitizer_libignore.cc Honour 80-character line limit 2017-07-20 14:15:00 +00:00
sanitizer_libignore.h [tsan] Implement a 'ignore_noninstrumented_modules' flag to better suppress false positive races 2017-01-11 00:54:26 +00:00
sanitizer_linux.cc [asan] Use dynamic shadow on 32-bit Android. 2017-11-10 22:27:48 +00:00
sanitizer_linux.h Removed platform-specific ifdefs from sanitizer_procmaps.h 2017-09-22 17:48:24 +00:00
sanitizer_linux_libcdep.cc [sanitizer] Revert rL317822 2017-11-09 21:26:07 +00:00
sanitizer_linux_mips64.S [ESan][MIPS] Adds support for MIPS64 2016-10-06 09:58:11 +00:00
sanitizer_linux_s390.cc [sanitizer] [SystemZ] Update CVE-2016-2143 check for Ubuntu 16.04 2017-05-24 15:06:33 +00:00
sanitizer_linux_x86_64.S [sanitizer][esan] Add internal_sigaction_syscall 2016-06-14 15:15:38 +00:00
sanitizer_list.h Whenever reasonable, merge ASAN quarantine batches to save memory. 2017-01-19 22:15:54 +00:00
sanitizer_mac.cc [asan] Use dynamic shadow on 32-bit Android. 2017-11-10 22:27:48 +00:00
sanitizer_mac.h [compiler-rt] Fix const and volatile qualifier warnings 2017-11-10 21:19:20 +00:00
sanitizer_mac_libcdep.cc (NFC) Rename GetMax{,User}VirtualAddress. 2017-11-07 23:51:22 +00:00
sanitizer_malloc_mac.inc Free zone name when destroying malloc zone 2017-04-13 14:00:24 +00:00
sanitizer_mutex.h Remove strict tid checks from the mac implementation of BlockingMutex 2017-02-09 19:29:11 +00:00
sanitizer_persistent_allocator.cc
sanitizer_persistent_allocator.h [sanitizer] Fix Clang-tidy modernize-use-nullptr warnings in lib/sanitizer_common headers, unify closing inclusion guards. Patch by Eugene Zelenko 2015-09-29 18:23:36 +00:00
sanitizer_placement_new.h
sanitizer_platform.h Revert "[LSan] Detect dynamic loader by its base address." 2017-10-05 22:53:17 +00:00
sanitizer_platform_interceptors.h [sanitizer] Don't intercept signal and sigaction on Fuchsia 2017-10-09 18:29:52 +00:00
sanitizer_platform_limits_linux.cc [sanitizer] Add a bunch of ifdefs for sparc targets to avoid build failures. 2016-12-02 08:07:35 +00:00
sanitizer_platform_limits_netbsd.cc Add NetBSD improvements in sanitizers 2017-10-25 17:09:05 +00:00
sanitizer_platform_limits_netbsd.h [tsan] Use __sanitizer_siginfo from sanitizer_common 2017-11-10 04:27:47 +00:00
sanitizer_platform_limits_posix.cc [Sanitizers] Consolidate internal errno definitions. 2017-07-06 00:50:57 +00:00
sanitizer_platform_limits_posix.h [tsan] Use __sanitizer_siginfo from sanitizer_common 2017-11-10 04:27:47 +00:00
sanitizer_posix.cc [compiler-rt] Cleanup SignalContext initialization 2017-09-14 02:48:41 +00:00
sanitizer_posix.h Add NetBSD specific version of sanitizer_platform_limits_posix 2017-08-28 21:03:23 +00:00
sanitizer_posix_libcdep.cc Update sanitizer_allocator to use new API. 2017-11-07 16:19:24 +00:00
sanitizer_printf.cc [sanitizer] Move CommonSanitizerReportMutex from _print.cc to _common.cc 2017-09-22 18:31:37 +00:00
sanitizer_procmaps.h Move LoadedModule list to a NoCtor vector and initialize on demand. 2017-09-29 20:55:06 +00:00
sanitizer_procmaps_common.cc Move LoadedModule list to a NoCtor vector and initialize on demand. 2017-09-29 20:55:06 +00:00
sanitizer_procmaps_freebsd.cc Removed platform-specific ifdefs from sanitizer_procmaps.h 2017-09-22 17:48:24 +00:00
sanitizer_procmaps_linux.cc Removed platform-specific ifdefs from sanitizer_procmaps.h 2017-09-22 17:48:24 +00:00
sanitizer_procmaps_mac.cc [compiler-rt] Fix const and volatile qualifier warnings 2017-11-10 21:19:20 +00:00
sanitizer_quarantine.h [Sanitizers] New sanitizer API to purge allocator quarantine. 2017-10-23 17:12:07 +00:00
sanitizer_report_decorator.h [compiler-rt] Move dump_instruction_bytes and dump_registers into sanitizer_common 2017-09-13 06:24:59 +00:00
sanitizer_signal_interceptors.inc [sanitizer] Forward declaration of __sanitizer_sigaction without signal interceptors 2017-11-10 04:05:38 +00:00
sanitizer_stackdepot.cc rename InternalBinarySearch to InternalLowerBound 2016-11-18 20:48:52 +00:00
sanitizer_stackdepot.h [sanitizer] Fix Clang-tidy modernize-use-nullptr warnings in lib/sanitizer_common headers, unify closing inclusion guards. Patch by Eugene Zelenko 2015-09-29 18:23:36 +00:00
sanitizer_stackdepotbase.h [sanitizer] Fix Clang-tidy modernize-use-nullptr warnings in lib/sanitizer_common headers, unify closing inclusion guards. Patch by Eugene Zelenko 2015-09-29 18:23:36 +00:00
sanitizer_stacktrace.cc Revert "[PowerPC] Fix sanitizer frame unwind on 32-bit ABIs" 2017-03-17 01:15:39 +00:00
sanitizer_stacktrace.h [sanitizer] Add BufferedStackTrace::Reset() 2017-09-14 03:06:35 +00:00
sanitizer_stacktrace_libcdep.cc Do not crash with missing symbolication when running in DEDUP mode 2017-07-10 20:06:06 +00:00
sanitizer_stacktrace_printer.cc [sanitizer_common] Fuchsia-specific symbolizer 2017-08-01 22:54:51 +00:00
sanitizer_stacktrace_printer.h [sanitizer] Use architecture/slice information when symbolizing fat Mach-O files on Darwin 2017-01-06 21:45:05 +00:00
sanitizer_stoptheworld.h Update suspended threads info to be compatible with darwin 2017-04-17 20:29:38 +00:00
sanitizer_stoptheworld_linux_libcdep.cc [tsan] Use __sanitizer_siginfo from sanitizer_common 2017-11-10 04:27:47 +00:00
sanitizer_stoptheworld_mac.cc [sanitizer] Remove use of task_for_pid from sanitizer_stoptheworld_mac.cc 2017-08-07 18:07:20 +00:00
sanitizer_suppressions.cc [sanitizer_common] Disable filesystem-related code for Fuchsia 2017-08-01 21:28:39 +00:00
sanitizer_suppressions.h [UBSan] Implement runtime suppressions (PR25066). 2015-12-18 19:56:42 +00:00
sanitizer_symbolizer.cc Invalidate symbolizer module list from dlopen/dlclose interceptors 2017-09-26 16:12:56 +00:00
sanitizer_symbolizer.h Add support for custom loaders to the sanitizer symbolizer 2017-10-02 20:22:16 +00:00
sanitizer_symbolizer_fuchsia.cc [Fuchsia] Magenta -> Zircon 2017-09-13 01:18:15 +00:00
sanitizer_symbolizer_internal.h [sanitizer_common] Move filesystem-related code out of sanitizer_common.cc 2017-07-22 01:46:40 +00:00
sanitizer_symbolizer_libbacktrace.cc [sanitizer] Fix sanitizer_common compile errors on gcc trunk 2017-11-07 20:10:17 +00:00
sanitizer_symbolizer_libbacktrace.h Provide missing Internal{Alloc, Free} declarations for libbacktrace symbolizer. 2015-10-07 23:13:28 +00:00
sanitizer_symbolizer_libcdep.cc Add support for custom loaders to the sanitizer symbolizer 2017-10-02 20:22:16 +00:00
sanitizer_symbolizer_mac.cc [compiler-rt] Remove the system includes from __sanitizer namespace 2016-09-15 21:02:22 +00:00
sanitizer_symbolizer_mac.h
sanitizer_symbolizer_posix_libcdep.cc [compiler-rt] Check for empty buffer in Addr2LineProcess::ReadFromSymbolizer 2017-08-04 18:39:36 +00:00
sanitizer_symbolizer_win.cc [asan/win] Delay load dbghelp.dll to delay ucrtbase.dll initialization 2016-11-14 17:37:50 +00:00
sanitizer_syscall_generic.inc Add NetBSD improvements in sanitizers 2017-10-25 17:09:05 +00:00
sanitizer_syscall_linux_aarch64.inc Try to unbreak Linux sanitizers 2017-10-25 17:56:36 +00:00
sanitizer_syscall_linux_arm.inc [sanitizer] Asm implementation of syscall() for arm32. 2017-11-08 00:15:12 +00:00
sanitizer_syscall_linux_x86_64.inc Try to unbreak Linux sanitizers 2017-10-25 17:56:36 +00:00
sanitizer_termination.cc [sanitizer] Move termination functions in their own file 2016-05-27 21:57:17 +00:00
sanitizer_thread_registry.cc [asan] Refactor thread creation bookkeeping 2017-08-09 00:38:57 +00:00
sanitizer_thread_registry.h [sanitizer] Introduce tid_t as a typedef for OS-provided thread IDs 2017-04-17 18:17:38 +00:00
sanitizer_tls_get_addr.cc [compiler-rt] Replace VPrintf with VReport in sanitizer_tls_get_addr.cc 2017-07-20 01:36:16 +00:00
sanitizer_tls_get_addr.h [lsan] Avoid segfaults during threads destruction under high load 2017-04-06 07:42:27 +00:00
sanitizer_unwind_linux_libcdep.cc Add NetBSD support in sanitizer_unwind_linux_libcdep.cc 2017-08-05 13:36:49 +00:00
sanitizer_win.cc [asan] Use dynamic shadow on 32-bit Android. 2017-11-10 22:27:48 +00:00
sanitizer_win.h [sanitizer_common] Don't provide sanitizer_procmaps API functions where not defined 2017-09-25 20:48:51 +00:00
sanitizer_win_defs.h [sanitizer] if WINAPI is already defined, do not redefine it 2017-02-08 18:34:05 +00:00
sanitizer_win_dll_thunk.cc [sanitizer] Intercept weak functions in dll_thunks. 2017-02-02 23:01:34 +00:00
sanitizer_win_dll_thunk.h [compiler-rt][asan] Fix incorrect macro preventing ICF with MSVC 2017-02-21 20:04:47 +00:00
sanitizer_win_dynamic_runtime_thunk.cc [sanitizer] Add dynamic_runtime_thunk for different sanitizers. 2017-02-02 23:01:41 +00:00
sanitizer_win_weak_interception.cc [sanitizer] Fix sanitizer_common compile errors on gcc trunk 2017-11-07 20:10:17 +00:00
sanitizer_win_weak_interception.h [sanitizer] Use interception to access to strong definitions in the executable. 2017-02-02 23:02:11 +00:00
weak_symbols.txt [sanitizer] Define as weak, functions that are declared as weak. 2017-01-31 20:23:14 +00:00