diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2017-04-03 10:50:31 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2017-04-03 10:50:31 +0900 |
| commit | f5632f2f12b7ecdfbe624d46b107a597005d25ca (patch) | |
| tree | 35c3a08d2529513bc62e4b2a7375a99be862cca4 /src/kernel.c | |
| parent | d27a3d47cdd114cfcf450bf4d54664430dfce29d (diff) | |
| download | mruby-f5632f2f12b7ecdfbe624d46b107a597005d25ca.tar.gz mruby-f5632f2f12b7ecdfbe624d46b107a597005d25ca.zip | |
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.
Diffstat (limited to 'src/kernel.c')
| -rw-r--r-- | src/kernel.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/kernel.c b/src/kernel.c index 65d6213fa..8670e0651 100644 --- a/src/kernel.c +++ b/src/kernel.c @@ -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); |
