aboutsummaryrefslogtreecommitdiffstats
path: root/vm.c
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2017-08-21 14:15:31 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2017-08-21 14:15:31 +0000
commitac85d3c0a34b5c02218fe4e8594a8672282a0c1d (patch)
tree4b7a26cc8971e482b462201ca49314a6303438d5 /vm.c
parent6110057e709e9a273f35f5a79bbffb30d2d9674f (diff)
downloadruby-ac85d3c0a34b5c02218fe4e8594a8672282a0c1d.tar.gz
prevent stack overflow
* gc.c: enable PREVENT_STACK_OVERFLOW. * vm.c (invoke_iseq_block_from_c): prevent stack overflow. * vm_eval.c (stack_check): raise preallocated exception instance. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@59630 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'vm.c')
-rw-r--r--vm.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/vm.c b/vm.c
index ea3cf6da3f..1da03c4566 100644
--- a/vm.c
+++ b/vm.c
@@ -1018,6 +1018,7 @@ invoke_iseq_block_from_c(rb_thread_t *th, const struct rb_captured_block *captur
VALUE *sp = cfp->sp;
const rb_callable_method_entry_t *me = th->passed_bmethod_me;
th->passed_bmethod_me = NULL;
+ stack_check(th);
CHECK_VM_STACK_OVERFLOW(cfp, argc);
cfp->sp = sp + argc;