ruby-changes:9623
From: ko1 <ko1@a...>
Date: Mon, 29 Dec 2008 16:45:18 +0900 (JST)
Subject: [ruby-changes:9623] Ruby:r21163 (trunk): * vm.c (vm_set_eval_stack, vm_set_main_stack, vm_set_top_stack):
ko1 2008-12-29 16:44:56 +0900 (Mon, 29 Dec 2008) New Revision: 21163 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=21163 Log: * vm.c (vm_set_eval_stack, vm_set_main_stack, vm_set_top_stack): check stack overflow. [ruby-dev:37646] Modified files: trunk/ChangeLog trunk/vm.c Index: ChangeLog =================================================================== --- ChangeLog (revision 21162) +++ ChangeLog (revision 21163) @@ -1,3 +1,8 @@ +Mon Dec 29 16:16:20 2008 Koichi Sasada <ko1@a...> + + * vm.c (vm_set_eval_stack, vm_set_main_stack, vm_set_top_stack): + check stack overflow. [ruby-dev:37646] + Sun Dec 28 18:36:33 2008 Yuki Sonoda (Yugui) <yugui@y...> * test/rubygems/test_gem_command.rb Index: vm.c =================================================================== --- vm.c (revision 21162) +++ vm.c (revision 21163) @@ -77,6 +77,8 @@ vm_push_frame(th, iseq, VM_FRAME_MAGIC_TOP, th->top_self, 0, iseq->iseq_encoded, th->cfp->sp, 0, iseq->local_size); + + CHECK_STACK_OVERFLOW(th->cfp, iseq->stack_max); } static void @@ -95,6 +97,8 @@ if (cref) { th->cfp->dfp[-1] = (VALUE)cref; } + + CHECK_STACK_OVERFLOW(th->cfp, iseq->stack_max); } static void @@ -116,6 +120,8 @@ if (bind && iseq->local_size > 0) { bind->env = vm_make_env_object(th, th->cfp); } + + CHECK_STACK_OVERFLOW(th->cfp, iseq->stack_max); } rb_control_frame_t * -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/