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
This commit is contained in:
parent
29fa7a9f91
commit
9c927f8c8b
1
gc.c
1
gc.c
@ -4004,6 +4004,7 @@ ruby_stack_length(VALUE **p)
|
||||
return STACK_LENGTH;
|
||||
}
|
||||
|
||||
#define PREVENT_STACK_OVERFLOW 1
|
||||
#ifndef PREVENT_STACK_OVERFLOW
|
||||
#if !(defined(POSIX_SIGNAL) && defined(SIGSEGV) && defined(HAVE_SIGALTSTACK))
|
||||
# define PREVENT_STACK_OVERFLOW 1
|
||||
|
1
vm.c
1
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;
|
||||
|
Loading…
x
Reference in New Issue
Block a user