mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
Restrict recursion levels in method_missing(); fix #3556
Note this is a temporary fix. Error message generation (including `inspect`) should be deferred until its use.
This commit is contained in:
+1
-1
@@ -922,7 +922,7 @@ mrb_method_missing(mrb_state *mrb, mrb_sym name, mrb_value self, mrb_value args)
|
||||
/* method missing in inspect; avoid recursion */
|
||||
repr = mrb_any_to_s(mrb, self);
|
||||
}
|
||||
else if (mrb_respond_to(mrb, self, inspect) && mrb->c->ci - mrb->c->cibase < 64) {
|
||||
else if (mrb_respond_to(mrb, self, inspect) && mrb->c->ci - mrb->c->cibase < 16) {
|
||||
repr = mrb_funcall_argv(mrb, self, inspect, 0, 0);
|
||||
if (mrb_string_p(repr) && RSTRING_LEN(repr) > 64) {
|
||||
repr = mrb_any_to_s(mrb, self);
|
||||
|
||||
Reference in New Issue
Block a user