Check `arena_idx` before accessing; fix #3934

parent 0e93f1ff
...@@ -229,7 +229,8 @@ mrb_exc_set(mrb_state *mrb, mrb_value exc) ...@@ -229,7 +229,8 @@ mrb_exc_set(mrb_state *mrb, mrb_value exc)
} }
else { else {
mrb->exc = mrb_obj_ptr(exc); mrb->exc = mrb_obj_ptr(exc);
if ((struct RBasic*)mrb->exc == mrb->gc.arena[mrb->gc.arena_idx-1]) { if (mrb->gc.arena_idx > 0 &&
(struct RBasic*)mrb->exc == mrb->gc.arena[mrb->gc.arena_idx-1]) {
mrb->gc.arena_idx--; mrb->gc.arena_idx--;
} }
if (!mrb->gc.out_of_memory) { if (!mrb->gc.out_of_memory) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment