[compiler-rt] 191c162 - [NFC][asan] Extract FillChunk

Vitaly Buka via llvm-commits llvm-commits at lists.llvm.org
Thu Jun 22 10:39:53 PDT 2023


Author: Vitaly Buka
Date: 2023-06-22T10:38:29-07:00
New Revision: 191c162d6ef46b73deadf6937c30226b5a161c49

URL: https://github.com/llvm/llvm-project/commit/191c162d6ef46b73deadf6937c30226b5a161c49
DIFF: https://github.com/llvm/llvm-project/commit/191c162d6ef46b73deadf6937c30226b5a161c49.diff

LOG: [NFC][asan] Extract FillChunk

Added: 
    

Modified: 
    compiler-rt/lib/asan/asan_allocator.cpp

Removed: 
    


################################################################################
diff  --git a/compiler-rt/lib/asan/asan_allocator.cpp b/compiler-rt/lib/asan/asan_allocator.cpp
index eb91beea1e25e..26f29486184ab 100644
--- a/compiler-rt/lib/asan/asan_allocator.cpp
+++ b/compiler-rt/lib/asan/asan_allocator.cpp
@@ -192,6 +192,20 @@ class LargeChunkHeader {
   }
 };
 
+static void FillChunk(AsanChunk *m) {
+  Flags &fl = *flags();
+
+  if (fl.max_free_fill_size > 0) {
+    // We have to skip the chunk header, it contains free_context_id.
+    uptr scribble_start = (uptr)m + kChunkHeaderSize + kChunkHeader2Size;
+    if (m->UsedSize() >= kChunkHeader2Size) {  // Skip Header2 in user area.
+      uptr size_to_fill = m->UsedSize() - kChunkHeader2Size;
+      size_to_fill = Min(size_to_fill, (uptr)fl.max_free_fill_size);
+      REAL(memset)((void *)scribble_start, fl.free_fill_byte, size_to_fill);
+    }
+  }
+}
+
 struct QuarantineCallback {
   QuarantineCallback(AllocatorCache *cache, BufferedStackTrace *stack)
       : cache_(cache),
@@ -199,18 +213,7 @@ struct QuarantineCallback {
   }
 
   void PreQuarantine(AsanChunk *m) {
-    Flags &fl = *flags();
-
-    if (fl.max_free_fill_size > 0) {
-      // We have to skip the chunk header, it contains free_context_id.
-      uptr scribble_start = (uptr)m + kChunkHeaderSize + kChunkHeader2Size;
-      if (m->UsedSize() >= kChunkHeader2Size) {  // Skip Header2 in user area.
-        uptr size_to_fill = m->UsedSize() - kChunkHeader2Size;
-        size_to_fill = Min(size_to_fill, (uptr)fl.max_free_fill_size);
-        REAL(memset)((void *)scribble_start, fl.free_fill_byte, size_to_fill);
-      }
-    }
-
+    FillChunk(m);
     // Poison the region.
     PoisonShadow(m->Beg(), RoundUpTo(m->UsedSize(), ASAN_SHADOW_GRANULARITY),
                  kAsanHeapFreeMagic);


        


More information about the llvm-commits mailing list