llvm-project/compiler-rt/lib/asan
Alex Shlyapnikov ccab11b0e8 [Sanitizers] Move cached allocator_may_return_null flag to sanitizer_allocator
Summary:
Move cached allocator_may_return_null flag to sanitizer_allocator.cc and
provide API to consolidate and unify the behavior of all specific allocators.

Make all sanitizers using CombinedAllocator to follow
AllocatorReturnNullOrDieOnOOM() rules to behave the same way when OOM
happens.

When OOM happens, turn allocator_out_of_memory flag on regardless of
allocator_may_return_null flag value (it used to not to be set when
allocator_may_return_null == true).

release_to_os_interval_ms and rss_limit_exceeded will likely be moved to
sanitizer_allocator.cc too (later).

Reviewers: eugenis

Subscribers: srhines, kubamracek, llvm-commits

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

llvm-svn: 305858
2017-06-20 21:23:02 +00:00
..
scripts [asan] Fix android setup script to overwrite the symlink. 2017-06-19 21:42:44 +00:00
tests [asan] Add strndup/__strndup interceptors. 2017-06-01 09:37:22 +00:00
.clang-format Tell clang-format that (most) sanitizers are written using Google style guide. 2015-11-19 22:11:10 +00:00
CMakeLists.txt Enable builds of darwin lsan by default 2017-04-06 17:41:26 +00:00
README.txt [ASan] Fix the links to bugs and wikipages. 2015-12-04 17:37:40 +00:00
asan.syms.extra [asan] Export __sancov_* symbols symbols. 2017-01-31 20:23:07 +00:00
asan_activation.cc [sanitizer-coverage] nuke more stale code 2017-06-02 00:52:35 +00:00
asan_activation.h [ASan] Change activation strategy. 2014-12-19 20:35:53 +00:00
asan_activation_flags.inc ASAN activate/deactive controls thread_local_quarantine_size_kb option. 2017-01-12 18:51:25 +00:00
asan_allocator.cc [Sanitizers] Move cached allocator_may_return_null flag to sanitizer_allocator 2017-06-20 21:23:02 +00:00
asan_allocator.h Revert r304285, r304297. 2017-06-05 21:20:55 +00:00
asan_blacklist.txt Ignore stack-buffer-overflow in std::_Find_elem<*> / std::num_get<...>::_Getifld 2014-05-07 14:40:23 +00:00
asan_debugging.cc [asan] Add a new AddressDescription structure, which can describe any type of address. 2016-09-09 20:43:20 +00:00
asan_descriptions.cc [asan] Support line numbers in StackVarDescr 2017-03-30 00:41:09 +00:00
asan_descriptions.h [asan] Reify ErrorGeneric 2016-09-21 20:18:18 +00:00
asan_errors.cc Restrict usage of MemoryMappingLayout to platforms which support it 2017-03-01 19:20:13 +00:00
asan_errors.h [asan] Provide bug descriptions for all reports (not just ErrorGeneric) 2016-11-28 21:18:15 +00:00
asan_fake_stack.cc fix random typos [NFC] 2016-08-05 18:49:08 +00:00
asan_fake_stack.h fix random typos [NFC] 2016-08-05 18:49:08 +00:00
asan_flags.cc [asan] Add strndup/__strndup interceptors. 2017-06-01 09:37:22 +00:00
asan_flags.h [Sanitizer] Change InitializeFlags() signatures. NFC. 2015-02-12 00:36:42 +00:00
asan_flags.inc [asan] Move AsanCheckDynamicRTPrereqs check under flag 2017-03-31 06:36:37 +00:00
asan_globals.cc [asan] Fix dead stripping of globals on Linux (compiler-rt). 2017-04-27 20:27:33 +00:00
asan_globals_win.cc [sanitizer] Split dll_thunks into different sanitizers. 2017-02-02 23:01:28 +00:00
asan_init_version.h [asan] Add runtime support for __asan_(un)register_image_globals 2016-03-28 20:28:17 +00:00
asan_interceptors.cc Revert r304285, r304297. 2017-06-05 21:20:55 +00:00
asan_interceptors.h [ASAN] Add interceptor for __longjmp_chk 2017-05-04 14:03:57 +00:00
asan_interface.inc [asan] Fix dead stripping of globals on Linux (compiler-rt). 2017-04-27 20:27:33 +00:00
asan_interface_internal.h [asan] Fix dead stripping of globals on Linux (compiler-rt). 2017-04-27 20:27:33 +00:00
asan_internal.h [compiler-rt][asan] Add support for desallocation of unhandled pointers 2017-02-21 16:09:38 +00:00
asan_linux.cc [asan] Move AsanCheckDynamicRTPrereqs check under flag 2017-03-31 06:36:37 +00:00
asan_lock.h
asan_mac.cc [compiler-rt][asan] Add support for desallocation of unhandled pointers 2017-02-21 16:09:38 +00:00
asan_malloc_linux.cc [asan] Fix ASan internal failure in AllocateFromLocalPool 2017-06-09 07:47:38 +00:00
asan_malloc_mac.cc [ASan] Retire mac_ignore_invalid_free, remove some dead code. 2015-12-04 16:17:55 +00:00
asan_malloc_win.cc Fix -Wstring-conversion instance 2017-03-15 19:50:02 +00:00
asan_mapping.h [Asan] Eliminate SHADOW_TO_MEM() macro 2017-04-10 19:13:47 +00:00
asan_memory_profile.cc [asan] trying to fix the windows build 2017-03-15 23:53:12 +00:00
asan_new_delete.cc [asan] Add C++17 aligned new/delete entrypoints. Patch by Jakub Jelinek, see https://reviews.llvm.org/D24771 2016-09-20 21:27:10 +00:00
asan_poisoning.cc Release memory to OS only when the requested range covers the entire page 2016-11-30 20:41:59 +00:00
asan_poisoning.h Release memory to OS only when the requested range covers the entire page 2016-11-30 20:41:59 +00:00
asan_posix.cc [sanitizer] Move DescribeSignalOrException to sanitizer_common. 2017-02-02 23:01:59 +00:00
asan_preinit.cc [asan] Revert r221882. 2014-11-14 13:02:28 +00:00
asan_report.cc [asan] Support line numbers in StackVarDescr 2017-03-30 00:41:09 +00:00
asan_report.h [asan] Support line numbers in StackVarDescr 2017-03-30 00:41:09 +00:00
asan_rtl.cc [sanitizer] Add a 'print_module_map' flag which prints modules with UUIDs on Darwin 2017-01-06 20:57:47 +00:00
asan_scariness_score.h Split ScarinessScore between its "storage" (POD), and an initializing object. 2016-08-30 17:08:47 +00:00
asan_stack.cc [ASan] Allow to atomically modify malloc_context_size at runtime. 2014-12-16 01:23:03 +00:00
asan_stack.h [LSAN] Fix test swapcontext.cc on MIPS 2016-05-18 06:09:26 +00:00
asan_stats.cc [ASan] Clean up obsolete stats. 2015-06-26 19:18:02 +00:00
asan_stats.h [ASan] Clean up obsolete stats. 2015-06-26 19:18:02 +00:00
asan_suppressions.cc General definition for weak functions 2017-01-29 05:44:59 +00:00
asan_suppressions.h [asan] add suppressions for odr violations 2015-02-25 00:49:12 +00:00
asan_thread.cc [asan] fix one more case where stack-use-after-return is not async-signal-safe (during thread startup). beef-up the test to give it a chance to catch regressions. Also relax the lint to make C++11 more usable. 2017-06-02 21:32:04 +00:00
asan_thread.h [sanitizer] Introduce tid_t as a typedef for OS-provided thread IDs 2017-04-17 18:17:38 +00:00
asan_win.cc [asan] Remove allow_user_segv_handler on Windows. 2017-05-24 07:17:27 +00:00
asan_win_dll_thunk.cc Add strtok interceptor for ASAN for Windows. 2017-03-23 23:20:47 +00:00
asan_win_dynamic_runtime_thunk.cc [sanitizer] Add dynamic_runtime_thunk for different sanitizers. 2017-02-02 23:01:41 +00:00
asan_win_weak_interception.cc [sanitizer] Use interception to access to strong definitions in the executable. 2017-02-02 23:02:11 +00:00
weak_symbols.txt Add lsan interceptors for libdispatch functions on darwin 2017-06-19 19:21:31 +00:00

README.txt

AddressSanitizer RT
================================
This directory contains sources of the AddressSanitizer (ASan) runtime library.

Directory structure:
README.txt       : This file.
Makefile.mk      : File for make-based build.
CMakeLists.txt   : File for cmake-based build.
asan_*.{cc,h}    : Sources of the asan runtime library.
scripts/*        : Helper scripts.
tests/*          : ASan unit tests.

Also ASan runtime needs the following libraries:
lib/interception/      : Machinery used to intercept function calls.
lib/sanitizer_common/  : Code shared between various sanitizers.

ASan runtime currently also embeds part of LeakSanitizer runtime for
leak detection (lib/lsan/lsan_common.{cc,h}).

ASan runtime can only be built by CMake. You can run ASan tests
from the root of your CMake build tree:

make check-asan

For more instructions see:
https://github.com/google/sanitizers/wiki/AddressSanitizerHowToBuild