[#47562] [Backport 200 - Backport #8716][Open] segmation fault 正規表現で大量のグループを利用時 — "taka-yoshi (taka-yoshi taka)" <smokeonthewater222@...>

15 messages 2013/08/01

[#47569] [ruby-trunk - Feature #8726][Open] Class#source_location — "takiuchi (Genki Takiuchi)" <genki@...21g.com>

14 messages 2013/08/03

[ruby-dev:47576] [ruby-trunk - Bug #8716][Assigned] segmation fault 正規表現で大量のグループを利用時

From: "nobu (Nobuyoshi Nakada)" <nobu@...>
Date: 2013-08-03 23:57:04 UTC
List: ruby-dev #47576
Issue #8716 has been updated by nobu (Nobuyoshi Nakada).

Category set to regexp
Status changed from Feedback to Assigned
Target version set to current: 2.1.0
ruby -v set to trunk

regexec.c:match_at()で呼ばれるSTACK_INITがサイズを考慮せずにxallocaしているため、スタックオーバーフローしています。
----------------------------------------
Bug #8716: segmation fault 正規表現で大量のグループを利用時
https://bugs.ruby-lang.org/issues/8716#change-40874

Author: taka-yoshi (taka-yoshi taka)
Status: Assigned
Priority: Normal
Assignee: 
Category: regexp
Target version: current: 2.1.0
ruby -v: trunk
Backport: 


WindowsとOS Xで検証しました。
*再現手順  ruby 2.0.0p247 (2013-06-27) [x64-mingw32]
 a="()"
 (32767.times{a<<'()'}
 eval "/#{a}/=~''"

*再現手順  ruby 2.0.0p0 (2013-02-24 revision 39474) [x86_64-darwin12.2.1]
 a="()"
 (1<<21).times{a<<'()'}
 eval "/#{a}/=~''"

以上よろしくお願いします。



##ruby 2.0.0p0 (2013-02-24 revision 39474) [x86_64-darwin12.2.1]


-- 
http://bugs.ruby-lang.org/

In This Thread