From 53eaa67305611e29e45722036cd49b528ac32abf Mon Sep 17 00:00:00 2001 From: Peter Zhu Date: Tue, 3 Sep 2024 13:43:33 -0400 Subject: [PATCH] Unpoision the object in rb_gc_impl_garbage_object_p --- gc/default.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/gc/default.c b/gc/default.c index 4bef4bb96d..96cdc75bc3 100644 --- a/gc/default.c +++ b/gc/default.c @@ -1653,13 +1653,15 @@ rb_gc_impl_garbage_object_p(void *objspace_ptr, VALUE ptr) { rb_objspace_t *objspace = objspace_ptr; - switch (BUILTIN_TYPE(ptr)) { - case T_NONE: - case T_MOVED: - case T_ZOMBIE: - return true; - default: - break; + asan_unpoisoning_object(ptr) { + switch (BUILTIN_TYPE(ptr)) { + case T_NONE: + case T_MOVED: + case T_ZOMBIE: + return true; + default: + break; + } } return is_lazy_sweeping(objspace) && GET_HEAP_PAGE(ptr)->flags.before_sweep &&