From 1dc6a8c8727f3e81720e768d7382a58849fa9bfa Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Thu, 17 Jul 2014 01:42:03 +0900 Subject: avoid infinite recursion when error was happened in #inspect; fix #2474 --- src/class.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/class.c b/src/class.c index 2b42a6a92..bae69df24 100644 --- a/src/class.c +++ b/src/class.c @@ -1206,7 +1206,7 @@ mrb_bob_missing(mrb_state *mrb, mrb_value mod) /* method missing in inspect; avoid recursion */ repr = mrb_any_to_s(mrb, mod); } - else if (mrb_respond_to(mrb, mod, inspect)) { + else if (mrb_respond_to(mrb, mod, inspect) && mrb->c->ci - mrb->c->cibase < 64) { repr = mrb_funcall_argv(mrb, mod, inspect, 0, 0); if (RSTRING_LEN(repr) > 64) { repr = mrb_any_to_s(mrb, mod); -- cgit v1.2.3