summaryrefslogtreecommitdiff
path: root/transient_heap.c
diff options
context:
space:
mode:
Diffstat (limited to 'transient_heap.c')
-rw-r--r--transient_heap.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/transient_heap.c b/transient_heap.c
index 809a2375b4..391dd59520 100644
--- a/transient_heap.c
+++ b/transient_heap.c
@@ -716,6 +716,7 @@ transient_heap_block_evacuate(struct transient_heap* theap, struct transient_hea
while (marked_index >= 0) {
struct transient_alloc_header *header = alloc_header(block, marked_index);
+ asan_unpoison_memory_region(header, sizeof *header, true);
VALUE obj = header->obj;
TH_ASSERT(header->magic == TRANSIENT_HEAP_ALLOC_MAGIC);
if (header->magic != TRANSIENT_HEAP_ALLOC_MAGIC) rb_bug("rb_transient_heap_mark: wrong header %s\n", rb_obj_info(obj));
@@ -744,6 +745,7 @@ transient_heap_block_evacuate(struct transient_heap* theap, struct transient_hea
header->obj = Qundef; /* for debug */
}
marked_index = header->next_marked_index;
+ asan_poison_memory_region(header, sizeof *header);
}
}