[PATCH] D39472: [asan] Ensure that the minimum redzone is at least SHADOW_GRANULARITY

Walter Lee via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Nov 16 08:06:08 PST 2017


waltl updated this revision to Diff 123184.
waltl added a comment.

Address CR comments


https://reviews.llvm.org/D39472

Files:
  compiler-rt/lib/asan/asan_activation.cc
  compiler-rt/lib/asan/asan_flags.cc


Index: compiler-rt/lib/asan/asan_flags.cc
===================================================================
--- compiler-rt/lib/asan/asan_flags.cc
+++ compiler-rt/lib/asan/asan_flags.cc
@@ -148,6 +148,9 @@
            SanitizerToolName);
     Die();
   }
+  // Ensure that redzone is at least SHADOW_GRANULARITY.
+  if (f->redzone < (int)SHADOW_GRANULARITY)
+    f->redzone = SHADOW_GRANULARITY;
   // Make "strict_init_order" imply "check_initialization_order".
   // TODO(samsonov): Use a single runtime flag for an init-order checker.
   if (f->strict_init_order) {
Index: compiler-rt/lib/asan/asan_activation.cc
===================================================================
--- compiler-rt/lib/asan/asan_activation.cc
+++ compiler-rt/lib/asan/asan_activation.cc
@@ -16,8 +16,10 @@
 #include "asan_allocator.h"
 #include "asan_flags.h"
 #include "asan_internal.h"
+#include "asan_mapping.h"
 #include "asan_poisoning.h"
 #include "asan_stack.h"
+#include "sanitizer_common/sanitizer_common.h"
 #include "sanitizer_common/sanitizer_flags.h"
 
 namespace __asan {
@@ -110,8 +112,9 @@
   AllocatorOptions disabled = asan_deactivated_flags.allocator_options;
   disabled.quarantine_size_mb = 0;
   disabled.thread_local_quarantine_size_kb = 0;
-  disabled.min_redzone = 16;  // Redzone must be at least 16 bytes long.
-  disabled.max_redzone = 16;
+  // Redzone must be at least Max(16, granularity) bytes long.
+  disabled.min_redzone = Max(16, (int)SHADOW_GRANULARITY);
+  disabled.max_redzone = disabled.min_redzone;
   disabled.alloc_dealloc_mismatch = false;
   disabled.may_return_null = true;
   ReInitializeAllocator(disabled);


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D39472.123184.patch
Type: text/x-patch
Size: 1643 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20171116/ed2d02c3/attachment-0001.bin>


More information about the llvm-commits mailing list