[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