summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatt Valentine-House <matt@eightbitraptor.com>2026-02-05 18:23:34 -0500
committerMatt Valentine-House <matt@eightbitraptor.com>2026-02-13 14:29:14 +0000
commit20d85bbe9b0234c83d64dc1fc853e92cc80a2672 (patch)
tree51cb4c6e187ccaaa1484fdfe604f4a5e1d749dff
parent1b65282961de25380d4c6e34d249136d0ea1fa5c (diff)
Make sure we clear the bits when adding a new page
-rw-r--r--gc/default/default.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/gc/default/default.c b/gc/default/default.c
index 8fa030cadc..8507219155 100644
--- a/gc/default/default.c
+++ b/gc/default/default.c
@@ -2011,6 +2011,9 @@ heap_add_page(rb_objspace_t *objspace, rb_heap_t *heap, struct heap_page *page)
page->slot_div_magic = slot_div_magics[heap - heaps];
page->heap = heap;
+ memset(&page->wb_unprotected_bits[0], 0, HEAP_PAGE_BITMAP_SIZE);
+ memset(&page->age_bits[0], 0, sizeof(page->age_bits));
+
asan_unlock_freelist(page);
page->freelist = NULL;
asan_unpoison_memory_region(page->body, HEAP_PAGE_SIZE, false);