[#37248] [Feature:1.9] Enumerator#inspect — "Yusuke ENDOH" <mame@...>

遠藤です。

12 messages 2008/12/02

[#37337] [Feature #841] Object#self — "rubikitch ." <redmine@...>

Feature #841: Object#self

13 messages 2008/12/09

[#37513] Current status of 1.9.1 RC1's issues — "Yugui (Yuki Sonoda)" <yugui@...>

Hi, folks

14 messages 2008/12/20
[#37516] Re: Current status of 1.9.1 RC1's issues — Masatoshi SEKI <m_seki@...> 2008/12/20

咳といいます。

[#37576] [BUG:trunk] encoding for stdio's — "Yugui (Yuki Sonoda)" <yugui@...>

Yuguiです。

11 messages 2008/12/24

[ruby-dev:37647] Re: [Bug #943] Segmentation fault (cygwin)

From: SASADA Koichi <ko1@...>
Date: 2008-12-29 07:18:14 UTC
List: ruby-dev #37647
 ささだです.

Martin Du"rst wrote::
> 次のスクリプトが Segmentation fault (core dumped) で終わります。
> 
> ruby -e 'puts "A=["; 0.upto(1000000) { puts "  [22, 55]," }; puts "]"' | ruby
> 
> [ruby-dev:37611] で報告した問題を簡単化しました。問題は左側の ruby のではなく、
> 右側の ruby で起こります。

 スタックオーバーフローチェックが足りていませんでした.多分,これで直り
ます.手元では直りました.[ruby-dev:37611] のほうは試していないのです
が,見てもらえませんか.

Index: vm.c
===================================================================
--- vm.c	(リビジョン 21150)
+++ vm.c	(作業コピー)
@@ -77,6 +77,8 @@ vm_set_top_stack(rb_thread_t * th, VALUE
     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 @@ vm_set_eval_stack(rb_thread_t * th, VALU
     if (cref) {
 	th->cfp->dfp[-1] = (VALUE)cref;
     }
+
+    CHECK_STACK_OVERFLOW(th->cfp, iseq->stack_max);
 }

 static void
@@ -116,6 +120,8 @@ vm_set_main_stack(rb_thread_t *th, VALUE
     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 *


-- 
// SASADA Koichi at atdot dot net

In This Thread