[Ruby 1.9-Bug#4290][Open] !_=%w~ dumps core

Bug #4290: !_=%w~ dumps core
http://redmine.ruby-lang.org/issues/show/4290

起票者: Yusuke E.
ステータス: Open, 優先度: Normal
担当者: Yusuke E., Target version: 1.9.3
ruby -v: ruby 1.9.3dev (2011-01-18 trunk 30590) [i686-linux]

遠藤です。

以下で SEGV します。

$ ./miniruby -e ‘!_=%w~’
-e:1: unterminated string meets end of file
./miniruby: [BUG] Segmentation fault
ruby 1.9.3dev (2011-01-18 trunk 30590) [i686-linux]

条件式の代入文の値に壊れた %w を置くと起きるようです。

diff --git a/parse.y b/parse.y
index bbe842e…b4ee019 100644
— a/parse.y
+++ b/parse.y
@@ -8684,6 +8684,7 @@ assign_in_cond(struct parser_params *parser, NODE
*node)
return 0;
}

  • if (!node->nd_value) return 1;
    switch (nd_type(node->nd_value)) {
    case NODE_LIT:
    case NODE_STR:


Yusuke E. [email protected]

チケット #4290 が更新されました。 (by Yusuke E.)

ステータス OpenからClosedに変更
進捗 % 0から100に変更

This issue was solved with changeset r30597.
Yusuke, thank you for reporting this issue.
Your contribution to Ruby is greatly appreciated.
May Ruby be with you.


  • parse.y: avoid NULL reference. [ruby-dev:43067]