0c3a5767d9 
								
							 
						 
						
							
							
								
								[sanitizer] Fix Clang-tidy modernize-use-nullptr warnings in lib/sanitizer_common headers, unify closing inclusion guards. Patch by Eugene Zelenko  
							
							... 
							
							
							
							llvm-svn: 248816 
							
						 
						
							2015-09-29 18:23:36 +00:00  
				
					
						
							
							
								 
						
							
								15db6dc2fb 
								
							 
						 
						
							
							
								
								[compiler-rt] [tsan] Enable TSan for AArch64/42-bit VMA  
							
							... 
							
							
							
							This patch adds support for tsan on aarch64-linux with 42-bit VMA
(current default config for 64K pagesize kernels).  The support is
enabled by defining the SANITIZER_AARCH64_VMA to 42 at build time
for both clang/llvm and compiler-rt.  The default VMA is 39 bits.
It also enabled tsan for previous supported VMA (39).
llvm-svn: 246330 
							
						 
						
							2015-08-28 20:40:50 +00:00  
				
					
						
							
							
								 
						
							
								ea1f332b79 
								
							 
						 
						
							
							
								
								Split Mprotect into MmapNoAccess and MprotectNoAccess to be more portable  
							
							... 
							
							
							
							On Windows, we have to know if a memory to be protected is mapped or not.
On POSIX, Mprotect was semantically different from mprotect most people know.
llvm-svn: 234602 
							
						 
						
							2015-04-10 15:02:19 +00:00  
				
					
						
							
							
								 
						
							
								96fc9a2537 
								
							 
						 
						
							
							
								
								[sanitizer] use the right memory order  
							
							... 
							
							
							
							llvm-svn: 225546 
							
						 
						
							2015-01-09 21:01:34 +00:00  
				
					
						
							
							
								 
						
							
								7e85a9216e 
								
							 
						 
						
							
							
								
								[asan] add a flag soft_rss_limit_mb  
							
							... 
							
							
							
							llvm-svn: 225323 
							
						 
						
							2015-01-06 23:53:32 +00:00  
				
					
						
							
							
								 
						
							
								04eeec32e6 
								
							 
						 
						
							
							
								
								[ASan] Change activation strategy.  
							
							... 
							
							
							
							Now ASan deactivation doesn't modify common or ASan-specific runtime
flags. Flags stay constant after initialization, and "deactivation"
instead stashes initialized runtime state, and deactivates the
runtime. Activation then just restores the original state (possibly,
overriden by some activation flags provided in system property on
Android).
llvm-svn: 224614 
							
						 
						
							2014-12-19 20:35:53 +00:00  
				
					
						
							
							
								 
						
							
								8cd909e749 
								
							 
						 
						
							
							
								
								[sanitizer] Rename InitIfLinkerInitialized to InitLinkerInitialized.  
							
							... 
							
							
							
							llvm-svn: 224577 
							
						 
						
							2014-12-19 14:45:19 +00:00  
				
					
						
							
							
								 
						
							
								20f3a52249 
								
							 
						 
						
							
							
								
								[sanitizer] add CombinedAllocator::InitIfLinkerInitialized and use it in lsan: speeds up lsan start-up time by ~25%  
							
							... 
							
							
							
							llvm-svn: 224469 
							
						 
						
							2014-12-17 23:06:36 +00:00  
				
					
						
							
							
								 
						
							
								6334f46db8 
								
							 
						 
						
							
							
								
								[Sanitizer] Introduce Allocator::may_return_null bool flag.  
							
							... 
							
							
							
							Summary:
Turn "allocator_may_return_null" common flag into an
Allocator::may_return_null bool flag. We want to make sure
that common flags are immutable after initialization. There
are cases when we want to change this flag in the allocator
at runtime: e.g. in unit tests and during ASan activation
on Android.
Test Plan: regression test suite, real-life applications
Reviewers: kcc, eugenis
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D6623 
llvm-svn: 224148 
							
						 
						
							2014-12-12 20:07:35 +00:00  
				
					
						
							
							
								 
						
							
								e9a5f03716 
								
							 
						 
						
							
							
								
								tsan: support mmap(MAP_32BIT)  
							
							... 
							
							
							
							Allow user memory in the first TB of address space.
This also enabled non-pie binaries and freebsd.
Fixes issue:
https://code.google.com/p/thread-sanitizer/issues/detail?id=5 
llvm-svn: 220571 
							
						 
						
							2014-10-24 17:07:29 +00:00  
				
					
						
							
							
								 
						
							
								7900202e14 
								
							 
						 
						
							
							
								
								[sanitizer] Add a bunch of sanity checks.  
							
							... 
							
							
							
							llvm-svn: 220528 
							
						 
						
							2014-10-23 22:29:51 +00:00  
				
					
						
							
							
								 
						
							
								cffaa1c298 
								
							 
						 
						
							
							
								
								Fix apparent thinko in r209744: allocator stats can be zero  
							
							... 
							
							
							
							llvm-svn: 212071 
							
						 
						
							2014-06-30 22:40:58 +00:00  
				
					
						
							
							
								 
						
							
								5864ac39ee 
								
							 
						 
						
							
							
								
								tsan: do not use 64-bit atomics in allocator code  
							
							... 
							
							
							
							64-bit atomics make porting of asan to 32-bits platforms problematic.
llvm-svn: 209744 
							
						 
						
							2014-05-28 15:22:12 +00:00  
				
					
						
							
							
								 
						
							
								7fe86589f1 
								
							 
						 
						
							
							
								
								[sanitizer] revert r200197: the buggy kernel ( https://bugzilla.kernel.org/show_bug.cgi?id=67651 ) is almost unusable with asan even with this workaround (too slow), so this workaround makes no sense. The asan/msan bootstrap bot was changed to use a non-buggy kernel  
							
							... 
							
							
							
							llvm-svn: 200217 
							
						 
						
							2014-01-27 13:05:09 +00:00  
				
					
						
							
							
								 
						
							
								0a5049b780 
								
							 
						 
						
							
							
								
								[sanitizer] increase the mmap granularity in sanitizer allocator from 2^16 to 2^18. This is a partial workaround for the fresh Kernel bug  https://bugzilla.kernel.org/show_bug.cgi?id=67651  
							
							... 
							
							
							
							llvm-svn: 200197 
							
						 
						
							2014-01-27 07:35:32 +00:00  
				
					
						
							
							
								 
						
							
								ccfc0481f1 
								
							 
						 
						
							
							
								
								[sanitizer] Implement TwoLevelByteMap and use it for the internal allocator on 64-bit.  
							
							... 
							
							
							
							Summary:
Implement TwoLevelByteMap and use it for the internal allocator on 64-bit.
This reduces bss on 64-bit by ~8Mb because we don't use FlatByteMap on 64-bits any more.
Dmitry, please check my understanding of atomics.
Reviewers: dvyukov
Reviewed By: dvyukov
CC: samsonov, llvm-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D2259 
llvm-svn: 195637 
							
						 
						
							2013-11-25 11:33:41 +00:00  
				
					
						
							
							
								 
						
							
								634a75b63e 
								
							 
						 
						
							
							
								
								[sanitizer] Do not clear memory which comes from secondary allocator.  
							
							... 
							
							
							
							Secondary allocator is mmap-based, so the memory is already zeroed.
llvm-svn: 195571 
							
						 
						
							2013-11-24 14:45:38 +00:00  
				
					
						
							
							
								 
						
							
								a2fde9484f 
								
							 
						 
						
							
							
								
								[sanitizer] use 16-byte aligned bzero in performance critical place (mostly for lsan)  
							
							... 
							
							
							
							llvm-svn: 195549 
							
						 
						
							2013-11-23 12:49:19 +00:00  
				
					
						
							
							
								 
						
							
								8d27910d7d 
								
							 
						 
						
							
							
								
								Rename SpinMutex::AssertHeld to CheckLocked, for consistency with BlockingMutex.  
							
							... 
							
							
							
							llvm-svn: 193447 
							
						 
						
							2013-10-25 23:03:21 +00:00  
				
					
						
							
							
								 
						
							
								f04ae33106 
								
							 
						 
						
							
							
								
								[asan] Fix a deadlock between asan's allocator and lsan  
							
							... 
							
							
							
							Summary:
This fixes a deadlock which happens in lsan
on a large memalign-allocated chunk that resides in lsan's root set.
Reviewers: samsonov, earthdok
Reviewed By: earthdok
CC: llvm-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D1957 
llvm-svn: 192885 
							
						 
						
							2013-10-17 11:18:11 +00:00  
				
					
						
							
							
								 
						
							
								ada5a7b7ef 
								
							 
						 
						
							
							
								
								[sanitizer] make the allocator crash instead of returning 0 on huge size (controlled by the allocator_may_return_null flag)  
							
							... 
							
							
							
							llvm-svn: 190127 
							
						 
						
							2013-09-06 09:25:11 +00:00  
				
					
						
							
							
								 
						
							
								87bf47894c 
								
							 
						 
						
							
							
								
								tsan: better  diagnostics for invalid addresses passed to free()  
							
							... 
							
							
							
							llvm-svn: 187980 
							
						 
						
							2013-08-08 13:47:50 +00:00  
				
					
						
							
							
								 
						
							
								b42ea7ef21 
								
							 
						 
						
							
							
								
								Lint fixes  
							
							... 
							
							
							
							llvm-svn: 187726 
							
						 
						
							2013-08-05 13:20:39 +00:00  
				
					
						
							
							
								 
						
							
								44b77c26e4 
								
							 
						 
						
							
							
								
								[msan] Allocator statistics interface and malloc hooks.  
							
							... 
							
							
							
							llvm-svn: 187653 
							
						 
						
							2013-08-02 14:26:58 +00:00  
				
					
						
							
							
								 
						
							
								4e0215a71c 
								
							 
						 
						
							
							
								
								Revert to C-style callbacks for iteration over allocator chunks.  
							
							... 
							
							
							
							Also clean up LSan code, fix some comments and replace void* with uptr
to bring down the number of reinterpret_casts.
llvm-svn: 184700 
							
						 
						
							2013-06-24 08:34:50 +00:00  
				
					
						
							
							
								 
						
							
								ecc4f5ba8e 
								
							 
						 
						
							
							
								
								[lsan] Implement __lsan_ignore_object().  
							
							... 
							
							
							
							Leak annotation similar to HeapChecker's IgnoreObject().
llvm-svn: 183412 
							
						 
						
							2013-06-06 14:17:56 +00:00  
				
					
						
							
							
								 
						
							
								69f11803ec 
								
							 
						 
						
							
							
								
								[lsan] Use the fast version of GetBlockBegin for leak checking in LSan and ASan.  
							
							... 
							
							
							
							llvm-svn: 182994 
							
						 
						
							2013-05-31 11:13:45 +00:00  
				
					
						
							
							
								 
						
							
								831a1d7cec 
								
							 
						 
						
							
							
								
								[sanitizer] introduce LargeMmapAllocator::GetBlockBeginFastSingleThreaded, required for LeakSanitizer to work faster. Also fix lint.  
							
							... 
							
							
							
							llvm-svn: 182917 
							
						 
						
							2013-05-30 08:43:30 +00:00  
				
					
						
							
							
								 
						
							
								cc61eefd4b 
								
							 
						 
						
							
							
								
								Fix MSVC W3 compiler warnings  
							
							... 
							
							
							
							llvm-svn: 182857 
							
						 
						
							2013-05-29 14:11:44 +00:00  
				
					
						
							
							
								 
						
							
								3469375e4f 
								
							 
						 
						
							
							
								
								[sanitizer] factor out ByteMap from SizeClassAllocator32 so that it can be later replaced with a more memory-efficient implementation on 64-bit.  
							
							... 
							
							
							
							llvm-svn: 182234 
							
						 
						
							2013-05-20 07:29:21 +00:00  
				
					
						
							
							
								 
						
							
								21cbaee6a9 
								
							 
						 
						
							
							
								
								[sanitizer] fix gcc build  
							
							... 
							
							
							
							llvm-svn: 182006 
							
						 
						
							2013-05-16 13:24:31 +00:00  
				
					
						
							
							
								 
						
							
								efb6172cb3 
								
							 
						 
						
							
							
								
								[sanitizer] Fix the region overflow condition in SanitizerAllocator64::PopulateFreeList().  
							
							... 
							
							
							
							llvm-svn: 182002 
							
						 
						
							2013-05-16 12:58:34 +00:00  
				
					
						
							
							
								 
						
							
								19eb46f4ca 
								
							 
						 
						
							
							
								
								[sanitizer] fix a gcc warning  
							
							... 
							
							
							
							llvm-svn: 181992 
							
						 
						
							2013-05-16 08:03:26 +00:00  
				
					
						
							
							
								 
						
							
								a551aaa944 
								
							 
						 
						
							
							
								
								[sanitizer] fix the GetBlockBegin overflow bug while preserving the performance optimization (use 32-bit division when possible). Improve the benchmarks that checks for performance of GetBlockBegin/GetMetaData  
							
							... 
							
							
							
							llvm-svn: 181989 
							
						 
						
							2013-05-16 07:11:16 +00:00  
				
					
						
							
							
								 
						
							
								e6459977b8 
								
							 
						 
						
							
							
								
								[sanitizer] Fix boundary condition in LargeMmapAllocator::GetBlockBegin. Patch by Sergey Matveev  
							
							... 
							
							
							
							llvm-svn: 179007 
							
						 
						
							2013-04-08 08:43:22 +00:00  
				
					
						
							
							
								 
						
							
								31056968fc 
								
							 
						 
						
							
							
								
								asan/tsan: reduce per-thread memory allocator caches  
							
							... 
							
							
							
							256 blocks (which is 512 in reallity) seems to be too big cache,
reducing the size reduces memory consumption but does not degrade performance.
llvm-svn: 177502 
							
						 
						
							2013-03-20 09:26:46 +00:00  
				
					
						
							
							
								 
						
							
								b941a2fca4 
								
							 
						 
						
							
							
								
								[asan] Add ForEachChunk() to sanitizer allocators. Patch by Sergey Matveev  
							
							... 
							
							
							
							llvm-svn: 177147 
							
						 
						
							2013-03-15 11:39:41 +00:00  
				
					
						
							
							
								 
						
							
								d332d42372 
								
							 
						 
						
							
							
								
								[asan] remove one redundant malloc stress test, unify the usage of ASAN_LOW_MEMORY macro in tests, slightly reduce test memory usage (all to make 32-bit runs consume less RAM)  
							
							... 
							
							
							
							llvm-svn: 177069 
							
						 
						
							2013-03-14 13:16:09 +00:00  
				
					
						
							
							
								 
						
							
								138b155042 
								
							 
						 
						
							
							
								
								[sanitizer] use fewer size classes in the allocator to reduce the memory footprint. There is no all-size-fits-all constant here, but this change is positive or neutral on several large apps I've tested  
							
							... 
							
							
							
							llvm-svn: 176855 
							
						 
						
							2013-03-12 08:44:40 +00:00  
				
					
						
							
							
								 
						
							
								ba56c8d4f9 
								
							 
						 
						
							
							
								
								[sanitizer] simplify the allocator's SizeClassMap: do not require an extra template parameter, instead compute it in flight. No functionality change  
							
							... 
							
							
							
							llvm-svn: 176853 
							
						 
						
							2013-03-12 07:01:27 +00:00  
				
					
						
							
							
								 
						
							
								0f5c20b417 
								
							 
						 
						
							
							
								
								[sanitizer] make SizeClassAllocator64::GetBlockBegin more bullet proof (by Sergey Matveev)  
							
							... 
							
							
							
							llvm-svn: 176799 
							
						 
						
							2013-03-11 09:43:12 +00:00  
				
					
						
							
							
								 
						
							
								66c26e5e96 
								
							 
						 
						
							
							
								
								[sanitizers] Fix check failure on dealloc from new thread  
							
							... 
							
							
							
							Summary:
Adds a test for this case, which was reduced from a chromium build of
WebKit's DumpRenderTree.
Reviewers: eugenis
CC: glider
Differential Revision: http://llvm-reviews.chandlerc.com/D495 
llvm-svn: 176552 
							
						 
						
							2013-03-06 14:54:08 +00:00  
				
					
						
							
							
								 
						
							
								323771b3f1 
								
							 
						 
						
							
							
								
								[sanitizer] Fix check failure in SizeClassMap::Print.  
							
							... 
							
							
							
							llvm-svn: 176338 
							
						 
						
							2013-03-01 08:49:14 +00:00  
				
					
						
							
							
								 
						
							
								459df6f167 
								
							 
						 
						
							
							
								
								[asan] a bit stricter lint for CHECK vs CHECK_XX (these CHECK_XX really help debugging!)  
							
							... 
							
							
							
							llvm-svn: 176085 
							
						 
						
							2013-02-26 12:59:06 +00:00  
				
					
						
							
							
								 
						
							
								167f9e4395 
								
							 
						 
						
							
							
								
								[ASan] Switch Windows to allocator v2, also fixing some build errors  
							
							... 
							
							
							
							llvm-svn: 174707 
							
						 
						
							2013-02-08 12:02:00 +00:00  
				
					
						
							
							
								 
						
							
								39675fe9c8 
								
							 
						 
						
							
							
								
								[sanitizer] always allocate 16-byte aligned chunks of memory  
							
							... 
							
							
							
							llvm-svn: 174617 
							
						 
						
							2013-02-07 15:04:06 +00:00  
				
					
						
							
							
								 
						
							
								109aa04ea9 
								
							 
						 
						
							
							
								
								[sanitizer_common] Fix lint warnings.  
							
							... 
							
							
							
							llvm-svn: 174616 
							
						 
						
							2013-02-07 14:58:04 +00:00  
				
					
						
							
							
								 
						
							
								07c740e213 
								
							 
						 
						
							
							
								
								[ASan] Fix a compilation warning.  
							
							... 
							
							
							
							llvm-svn: 174604 
							
						 
						
							2013-02-07 12:00:40 +00:00  
				
					
						
							
							
								 
						
							
								f444a49310 
								
							 
						 
						
							
							
								
								[ASan] Implement asan_mz_size(), asan_mz_force_lock() and asan_mz_force_unlock() for allocator2.  
							
							... 
							
							
							
							Switch to allocator2 on Darwin.
llvm-svn: 174603 
							
						 
						
							2013-02-07 11:40:03 +00:00  
				
					
						
							
							
								 
						
							
								7981ea8baa 
								
							 
						 
						
							
							
								
								asan/tsan: fix compilation errors/bugs on Windows where long is 32-bit even in 64-bit mode  
							
							... 
							
							
							
							llvm-svn: 174312 
							
						 
						
							2013-02-04 08:07:45 +00:00