llvm-project/compiler-rt/lib/asan
Alex Shlyapnikov 4b450685d3 [Sanitizers] Operator new() interceptors always die on allocation error
Summary:
Operator new interceptors behavior is now controlled by their nothrow
property as well as by allocator_may_return_null flag value:

- allocator_may_return_null=* + new()        - die on allocation error
- allocator_may_return_null=0 + new(nothrow) - die on allocation error
- allocator_may_return_null=1 + new(nothrow) - return null

Ideally new() should throw std::bad_alloc exception, but that is not
trivial to achieve, hence TODO.

Reviewers: eugenis

Subscribers: kubamracek, llvm-commits

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

llvm-svn: 306604
2017-06-28 21:58:57 +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] Operator new() interceptors always die on allocation error 2017-06-28 21:58:57 +00:00
asan_allocator.h Revert r304285, r304297. 2017-06-05 21:20:55 +00:00
asan_blacklist.txt
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 [asan] Fix windows build. 2017-06-28 00:37:29 +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 [Sanitizers] Operator new() interceptors always die on allocation error 2017-06-28 21:58:57 +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] Add support for Android debug message. 2017-06-23 23:38:20 +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