diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2017-03-04 18:55:19 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2017-03-04 18:56:20 +0900 |
| commit | 3b40a2f6b56d9c81b7673cc50121a56ebf7dc8bd (patch) | |
| tree | 9ce378c988b4297a47a350a2228ab09a996b8599 /src | |
| parent | ecee8c51b0ad8cddd9e422a3e5105f902d7e2781 (diff) | |
| download | mruby-3b40a2f6b56d9c81b7673cc50121a56ebf7dc8bd.tar.gz mruby-3b40a2f6b56d9c81b7673cc50121a56ebf7dc8bd.zip | |
Limit ecall() recursion levels; fix #3466
Diffstat (limited to 'src')
| -rw-r--r-- | src/vm.c | 3 |
1 files changed, 3 insertions, 0 deletions
@@ -292,6 +292,9 @@ ecall(mrb_state *mrb, int i) ptrdiff_t nstk; if (i<0) return; + if (mrb->c->ci - mrb->c->cibase > MRB_FUNCALL_DEPTH_MAX) { + mrb_exc_raise(mrb, mrb_obj_value(mrb->stack_err)); + } p = mrb->c->ensure[i]; if (!p) return; if (mrb->c->ci->eidx > i) |
