From e969229b77b9c3b1f6ff4de7d9ce6d15586a9c15 Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Thu, 25 May 2017 12:56:19 +0900 Subject: Check backtrace info may not be set (esp. NoMemError); fix #3663 --- src/backtrace.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src/backtrace.c') diff --git a/src/backtrace.c b/src/backtrace.c index 5081f1809..17b4d0968 100644 --- a/src/backtrace.c +++ b/src/backtrace.c @@ -138,6 +138,7 @@ mrb_print_backtrace(mrb_state *mrb) } backtrace = mrb_obj_iv_get(mrb, mrb->exc, mrb_intern_lit(mrb, "backtrace")); + if (mrb_nil_p(backtrace)) return; if (mrb_array_p(backtrace)) { print_backtrace(mrb, backtrace); } @@ -198,6 +199,7 @@ mrb_unpack_backtrace(mrb_state *mrb, mrb_value backtrace) struct backtrace_location *bt; mrb_int n, i; + if (mrb_nil_p(backtrace)) return mrb_ary_new_capa(mrb, 0); if (mrb_array_p(backtrace)) return backtrace; if (!mrb_string_p(backtrace)) { broken: -- cgit v1.2.3