From 60dd6b55860a04dcb7fe3325fffb1fbd703e13b8 Mon Sep 17 00:00:00 2001 From: dearblue Date: Mon, 29 Jan 2024 21:32:04 +0900 Subject: [PATCH] Allow to detect use-after-free after `mrb_irep_free()` for debugging Write invalid value to `irep` if `MRB_DEBUG` is defined by `MRuby::Build#enable_debug`. --- src/state.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/state.c b/src/state.c index ced96cb88..35ea71e2d 100644 --- a/src/state.c +++ b/src/state.c @@ -161,6 +161,9 @@ mrb_irep_free(mrb_state *mrb, mrb_irep *irep) } mrb_free(mrb, (void*)irep->lv); mrb_debug_info_free(mrb, irep->debug_info); +#ifdef MRB_DEBUG + memset(irep, -1, sizeof(*irep)); +#endif mrb_free(mrb, irep); }