llvm-project/compiler-rt/lib
Kostya Serebryany 712fc9803a [sanitizer] Initial implementation of a Hardened Allocator
Summary:
This is an initial implementation of a Hardened Allocator based on Sanitizer Common's CombinedAllocator.
It aims at mitigating heap based vulnerabilities by adding several features to the base allocator, while staying relatively fast.
The following were implemented:
- additional consistency checks on the allocation function parameters and on the heap chunks;
- use of checksum protected chunk header, to detect corruption;
- randomness to the allocator base;
- delayed freelist (quarantine), to mitigate use after free and overall determinism.
Additional mitigations are in the works.

Reviewers: eugenis, aizatsky, pcc, krasin, vitalybuka, glider, dvyukov, kcc

Subscribers: kubabrecka, filcab, llvm-commits

Differential Revision: http://reviews.llvm.org/D20084

llvm-svn: 271968
2016-06-07 01:20:26 +00:00
..
BlocksRuntime Move tests for BlocksRuntime and builtins to corresponding directories under test/ 2014-02-14 09:47:31 +00:00
asan This patch attempts to primitive support for Win64 asan 2016-06-06 18:09:54 +00:00
builtins [CMake] Update to requiring CMake 3.4.3 2016-05-31 20:21:42 +00:00
cfi [sancov] common flags initialization. 2016-03-18 19:28:07 +00:00
dfsan [sanitizer] [SystemZ] Abort if the kernel might be vulnerable to CVE-2016-2143. 2016-04-27 17:42:00 +00:00
esan [esan] Initialize runtime during early interceptors 2016-06-03 22:30:10 +00:00
interception This patch attempts to primitive support for Win64 asan 2016-06-06 18:09:54 +00:00
lsan [LSAN] Fix test swapcontext.cc on MIPS 2016-05-18 06:09:26 +00:00
msan __builtin_ia32_storeups is no more. Replace it with xmmintrin.h intrinsic. 2016-05-31 09:16:40 +00:00
profile [profile] code cleanup /NFC 2016-06-06 18:31:29 +00:00
safestack [compiler-rt] [safestack] Enable for aarch64 2015-12-11 17:38:38 +00:00
sanitizer_common [tsan] Switch to InternalAlloc everywhere __libc_malloc is currently used 2016-06-06 18:18:47 +00:00
scudo [sanitizer] Initial implementation of a Hardened Allocator 2016-06-07 01:20:26 +00:00
stats [Sanitizer] Introduce ListOfModules object and use it to replace GetListOfModules(). 2016-02-22 18:52:51 +00:00
tsan [tsan] Switch to InternalAlloc everywhere __libc_malloc is currently used 2016-06-06 18:18:47 +00:00
ubsan UBSan: crash less often on corrupted Vtables. 2016-06-02 18:36:12 +00:00
CMakeLists.txt [sanitizer] Initial implementation of a Hardened Allocator 2016-06-07 01:20:26 +00:00
Makefile.mk Remove autoconf support for building runtime libraries. 2016-01-26 21:31:12 +00:00