[compiler-rt] r200696 - [asan] Reinitialize allocator quarantine on activation.

Evgeniy Stepanov eugeni.stepanov at gmail.com
Mon Feb 3 06:19:08 PST 2014


Author: eugenis
Date: Mon Feb  3 08:19:08 2014
New Revision: 200696

URL: http://llvm.org/viewvc/llvm-project?rev=200696&view=rev
Log:
[asan] Reinitialize allocator quarantine on activation.

This is covered by AddressSanitizer.UAF_* tests in asan_test
with start_deactivated=1.

Modified:
    compiler-rt/trunk/lib/asan/asan_activation.cc
    compiler-rt/trunk/lib/asan/asan_allocator.h
    compiler-rt/trunk/lib/asan/asan_allocator2.cc

Modified: compiler-rt/trunk/lib/asan/asan_activation.cc
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/asan/asan_activation.cc?rev=200696&r1=200695&r2=200696&view=diff
==============================================================================
--- compiler-rt/trunk/lib/asan/asan_activation.cc (original)
+++ compiler-rt/trunk/lib/asan/asan_activation.cc Mon Feb  3 08:19:08 2014
@@ -13,6 +13,7 @@
 //===----------------------------------------------------------------------===//
 
 #include "asan_activation.h"
+#include "asan_allocator.h"
 #include "asan_flags.h"
 #include "asan_internal.h"
 #include "sanitizer_common/sanitizer_flags.h"
@@ -59,6 +60,8 @@ void AsanActivate() {
 
   ParseExtraActivationFlags();
 
+  ReInitializeAllocator();
+
   asan_is_deactivated = false;
   VReport(
       1,

Modified: compiler-rt/trunk/lib/asan/asan_allocator.h
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/asan/asan_allocator.h?rev=200696&r1=200695&r2=200696&view=diff
==============================================================================
--- compiler-rt/trunk/lib/asan/asan_allocator.h (original)
+++ compiler-rt/trunk/lib/asan/asan_allocator.h Mon Feb  3 08:19:08 2014
@@ -31,6 +31,7 @@ static const uptr kNumberOfSizeClasses =
 struct AsanChunk;
 
 void InitializeAllocator();
+void ReInitializeAllocator();
 
 class AsanChunkView {
  public:

Modified: compiler-rt/trunk/lib/asan/asan_allocator2.cc
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/asan/asan_allocator2.cc?rev=200696&r1=200695&r2=200696&view=diff
==============================================================================
--- compiler-rt/trunk/lib/asan/asan_allocator2.cc (original)
+++ compiler-rt/trunk/lib/asan/asan_allocator2.cc Mon Feb  3 08:19:08 2014
@@ -309,6 +309,10 @@ void InitializeAllocator() {
   quarantine.Init((uptr)flags()->quarantine_size, kMaxThreadLocalQuarantine);
 }
 
+void ReInitializeAllocator() {
+  quarantine.Init((uptr)flags()->quarantine_size, kMaxThreadLocalQuarantine);
+}
+
 static void *Allocate(uptr size, uptr alignment, StackTrace *stack,
                       AllocType alloc_type, bool can_fill) {
   if (!asan_inited)





More information about the llvm-commits mailing list