diff options
author | nagachika <nagachika@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2013-06-03 15:27:24 +0000 |
---|---|---|
committer | nagachika <nagachika@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2013-06-03 15:27:24 +0000 |
commit | e6ae0db36e70999bd41e6cbad106d499477991e9 (patch) | |
tree | d67ee3a828bdfb1cd4a39f9bfd5d0886dae7c9bd | |
parent | 44658707d24ccad75b66e2509396e30865111331 (diff) |
merge revision(s) 40791,40806: [Backport #8424]
* eval_intern.h (TH_PUSH_TAG): ensure jmpbuf to be accessible before
pushing tag to get rid of unaccessible tag by stack overflow.
* vm_core.h (rb_vm_tag): move jmpbuf between tag and prev so ensure to
be accessible.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_0_0@41054 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 10 | ||||
-rw-r--r-- | version.h | 6 | ||||
-rw-r--r-- | vm_core.h | 6 |
3 files changed, 18 insertions, 4 deletions
@@ -1,3 +1,13 @@ +Tue Jun 4 00:02:45 2013 Nobuyoshi Nakada <nobu@ruby-lang.org> + + * vm_core.h (rb_vm_tag): move jmpbuf between tag and prev so ensure to + be accessible. + +Tue Jun 4 00:02:45 2013 Nobuyoshi Nakada <nobu@ruby-lang.org> + + * eval_intern.h (TH_PUSH_TAG): ensure jmpbuf to be accessible before + pushing tag to get rid of unaccessible tag by stack overflow. + Mon Jun 3 23:22:58 2013 Nobuyoshi Nakada <nobu@ruby-lang.org> * compile.c (iseq_compile_each): forward anonymous and first keyword @@ -1,10 +1,10 @@ #define RUBY_VERSION "2.0.0" -#define RUBY_RELEASE_DATE "2013-06-03" -#define RUBY_PATCHLEVEL 199 +#define RUBY_RELEASE_DATE "2013-06-04" +#define RUBY_PATCHLEVEL 200 #define RUBY_RELEASE_YEAR 2013 #define RUBY_RELEASE_MONTH 6 -#define RUBY_RELEASE_DAY 3 +#define RUBY_RELEASE_DAY 4 #include "ruby/version.h" @@ -461,10 +461,14 @@ enum rb_thread_status { typedef RUBY_JMP_BUF rb_jmpbuf_t; +/* + the members which are written in TH_PUSH_TAG() should be placed at + the beginning and the end, so that entire region is accessible. +*/ struct rb_vm_tag { - rb_jmpbuf_t buf; VALUE tag; VALUE retval; + rb_jmpbuf_t buf; struct rb_vm_tag *prev; }; |