diff options
| author | ko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-12-09 06:00:56 +0000 |
|---|---|---|
| committer | ko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-12-09 06:00:56 +0000 |
| commit | ab87d09068d0185d7fa93bdcdff2127fe60ce421 (patch) | |
| tree | 171566b9990aad4fe690599bbddad019386a14b7 | |
| parent | ea0dfdd73a8f48f132ab8624b50fb910d29733ad (diff) | |
| download | ruby-ab87d09068d0185d7fa93bdcdff2127fe60ce421.tar.gz ruby-ab87d09068d0185d7fa93bdcdff2127fe60ce421.tar.xz ruby-ab87d09068d0185d7fa93bdcdff2127fe60ce421.zip | |
* eval_intern.h (CHECK_STACK_OVERFLOW): reserve frame size.
[ruby-dev:32485]
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@14157 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
| -rw-r--r-- | ChangeLog | 7 | ||||
| -rw-r--r-- | eval_intern.h | 2 |
2 files changed, 7 insertions, 2 deletions
@@ -1,7 +1,12 @@ +Sun Dec 9 14:59:15 2007 Koichi Sasada <ko1@atdot.net> + + * eval_intern.h (CHECK_STACK_OVERFLOW): reserve frame size. + [ruby-dev:32485] + Sun Dec 9 14:38:25 2007 Koichi Sasada <ko1@atdot.net> * vm.c (rb_thread_mark): use rb_gc_mark_maybe() for - VM stack specified by mark_stack_len. + VM stack specified by mark_stack_len. [ruby-dev:32462] * insnhelper.ci: clear vm stack extended by opt value. diff --git a/eval_intern.h b/eval_intern.h index e5680a273..61164de9a 100644 --- a/eval_intern.h +++ b/eval_intern.h @@ -187,7 +187,7 @@ char *strrchr _((const char *, const char)); } #define CHECK_STACK_OVERFLOW(cfp, margin) do \ - if (((VALUE *)(cfp)->sp) + (margin) >= ((VALUE *)cfp)) { \ + if (((VALUE *)(cfp)->sp) + (margin) + sizeof(rb_control_frame_t) >= ((VALUE *)cfp)) { \ rb_exc_raise(sysstack_error); \ } \ while (0) |
