From f12990bb649ea0f3befe7853d683bd1442a1cf4a Mon Sep 17 00:00:00 2001 From: Andy Wingo Date: Wed, 21 May 2025 14:26:39 +0200 Subject: [PATCH] Fix alignment for platform conservative roots visitor --- src/gc-platform-gnu-linux.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/gc-platform-gnu-linux.c b/src/gc-platform-gnu-linux.c index e5fcb9804..0c61457a2 100644 --- a/src/gc-platform-gnu-linux.c +++ b/src/gc-platform-gnu-linux.c @@ -88,6 +88,8 @@ static int visit_roots(struct dl_phdr_info *info, size_t size, void *data) { if (p->p_type == PT_LOAD && (p->p_flags & PF_W)) { uintptr_t start = p->p_vaddr + object_addr; uintptr_t end = start + p->p_memsz; + start = align_up(start, sizeof(void*)); + end = align_down(end, sizeof(void*)); DEBUG("found roots for '%s': [%p,%p)\n", object_name, (void*)start, (void*)end); visit_data->f(start, end, visit_data->heap, visit_data->data);