[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