From 0213f5b08a470d322edb54bda85523d05b2ea4c7 Mon Sep 17 00:00:00 2001 From: Peter Zhu Date: Wed, 10 Jun 2020 10:17:56 -0400 Subject: Fix ASan crash --- gc.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/gc.c b/gc.c index 3b2e7cdfa0..d4ed316267 100644 --- a/gc.c +++ b/gc.c @@ -11514,6 +11514,8 @@ const char * rb_raw_obj_info(char *buff, const int buff_size, VALUE obj) { int pos = 0; + void *poisoned = asan_poisoned_object_p(obj); + asan_unpoison_object(obj, false); #define BUFF_ARGS buff + pos, buff_size - pos #define APPENDF(f) if ((pos += snprintf f) >= buff_size) goto end @@ -11744,6 +11746,10 @@ rb_raw_obj_info(char *buff, const int buff_size, VALUE obj) #undef C } end: + if (poisoned) { + asan_poison_object(obj); + } + return buff; #undef APPENDF #undef BUFF_ARGS -- cgit v1.2.3