https://bugs.ruby-lang.org/
https://bugs.ruby-lang.org/favicon.ico?1711330511
2013-08-03T22:33:26Z
Ruby Issue Tracking System
Ruby master - Bug #8716: segmation fault 正規表現で大量のグループを利用時
https://bugs.ruby-lang.org/issues/8716?journal_id=40851
2013-08-03T22:33:26Z
nagachika (Tomoyuki Chikanaga)
nagachika00@gmail.com
<ul><li><strong>Tracker</strong> changed from <i>Backport</i> to <i>Bug</i></li><li><strong>Project</strong> changed from <i>Backport200</i> to <i>Ruby master</i></li><li><strong>Status</strong> changed from <i>Open</i> to <i>Feedback</i></li></ul><p>Backport200 は 2.0.0 ブランチへのバックポートチケット用ですので一旦 ruby-trunk へ移動します。</p>
<p>なお手元では trunk でも 2.0.0 でも再現しませんでした。<br>
SEGV 発生時のバックトレースなどのメッセージを添付していただけませんか。<br>
Mac OS X 版では C のバックトレースは ~/Library/Logs/DiagnosticReports の下にファイルで置かれますので、そちらもお願いします。</p>
Ruby master - Bug #8716: segmation fault 正規表現で大量のグループを利用時
https://bugs.ruby-lang.org/issues/8716?journal_id=40874
2013-08-04T08:57:02Z
nobu (Nobuyoshi Nakada)
nobu@ruby-lang.org
<ul><li><strong>Category</strong> set to <i>regexp</i></li><li><strong>Status</strong> changed from <i>Feedback</i> to <i>Assigned</i></li><li><strong>Target version</strong> set to <i>2.1.0</i></li><li><strong>ruby -v</strong> set to <i>trunk</i></li></ul><p>regexec.c:match_at()で呼ばれるSTACK_INITがサイズを考慮せずにxallocaしているため、スタックオーバーフローしています。</p>
Ruby master - Bug #8716: segmation fault 正規表現で大量のグループを利用時
https://bugs.ruby-lang.org/issues/8716?journal_id=40877
2013-08-04T10:36:20Z
nobu (Nobuyoshi Nakada)
nobu@ruby-lang.org
<ul><li><strong>Description</strong> updated (<a title="View differences" href="/journals/40877/diff?detail_id=29705">diff</a>)</li><li><strong>Assignee</strong> set to <i>k_takata (Ken Takata)</i></li></ul>
Ruby master - Bug #8716: segmation fault 正規表現で大量のグループを利用時
https://bugs.ruby-lang.org/issues/8716?journal_id=41247
2013-08-18T19:30:24Z
k_takata (Ken Takata)
<ul></ul><p>採用予定のパッチです。<br>
<a href="https://github.com/k-takata/Onigmo/commit/b9fba1dc63ccb42a86e934011b468e6022fabb74" class="external">https://github.com/k-takata/Onigmo/commit/b9fba1dc63ccb42a86e934011b468e6022fabb74</a><br>
Windowsで落ちなくなったことは確認しましたが、それ以外の環境は未確認です。</p>
Ruby master - Bug #8716: segmation fault 正規表現で大量のグループを利用時
https://bugs.ruby-lang.org/issues/8716?journal_id=44790
2014-01-30T06:17:08Z
hsbt (Hiroshi SHIBATA)
hsbt@ruby-lang.org
<ul><li><strong>Target version</strong> changed from <i>2.1.0</i> to <i>2.2.0</i></li></ul>
Ruby master - Bug #8716: segmation fault 正規表現で大量のグループを利用時
https://bugs.ruby-lang.org/issues/8716?journal_id=45692
2014-03-08T10:06:39Z
k_takata (Ken Takata)
<ul></ul><blockquote>
<p><a href="https://github.com/k-takata/Onigmo/commit/b9fba1dc63ccb42a86e934011b468e6022fabb74" class="external">https://github.com/k-takata/Onigmo/commit/b9fba1dc63ccb42a86e934011b468e6022fabb74</a></p>
</blockquote>
<p>Rubyにはおそらく影響しないのですが、上記リンク先を見ていただければ分かるとおり、<br>
マルチスレッド環境でこの変更がうまく動かない場合があるようなので、修正方法を再度検討中です。</p>
Ruby master - Bug #8716: segmation fault 正規表現で大量のグループを利用時
https://bugs.ruby-lang.org/issues/8716?journal_id=46228
2014-04-16T10:28:03Z
k_takata (Ken Takata)
<ul></ul><p>落ちる原因が2つあることが分かりました。</p>
<ol>
<li>alloca でスタックオーバーフロー (<a href="https://github.com/k-takata/Onigmo/commit/a0efc0a200f7108ca3d5ac3039c8f952e0051619" class="external">修正済み</a>)</li>
<li>そもそも鬼雲(鬼車も)は、グループの数を short で管理しているため、32767個以上のグループを管理できない。32768個あるとインデックスが負になり、不正アクセスが発生。(未修正)</li>
</ol>
<p>グループの数を 32bit で管理するようにするか、それとも 16bit のままとし、不正アクセスが発生しないように何らかのチェックを入れるか検討が必要です。</p>
Ruby master - Bug #8716: segmation fault 正規表現で大量のグループを利用時
https://bugs.ruby-lang.org/issues/8716?journal_id=46253
2014-04-19T06:48:55Z
k_takata (Ken Takata)
<ul></ul><p>キャプチャグループの数を <code>ONIG_MAX_CAPTURE_GROUP_NUM</code> (32767) 個に制限することにしました。<br>
それに合わせて、<code>ONIGERR_TOO_MANY_CAPTURE_GROUPS</code> というエラーコードを新設することにしました。<br>
<a href="https://github.com/k-takata/Onigmo/commit/c7cda4ed5676167b0d01bb5555724f6164fbdb13" class="external">https://github.com/k-takata/Onigmo/commit/c7cda4ed5676167b0d01bb5555724f6164fbdb13</a><br>
<code>tmp/ruby-2.0.x</code> ブランチも更新済みです。 # ブランチ名をそろそろどうにかすべきかも</p>
Ruby master - Bug #8716: segmation fault 正規表現で大量のグループを利用時
https://bugs.ruby-lang.org/issues/8716?journal_id=47813
2014-07-16T22:11:49Z
k_takata (Ken Takata)
<ul><li><strong>Assignee</strong> changed from <i>k_takata (Ken Takata)</i> to <i>naruse (Yui NARUSE)</i></li></ul><p>r46831 で Onigmo 5.14.1 がマージされましたので、これも取り込まれました。<br>
チケットのクローズ手順がよく分かっていないので、処理をお願いします。>NARUSEさん<br>
(あと <a class="issue tracker-1 status-5 priority-4 priority-default closed" title="Bug: warning origin incorrect with instance_eval (Closed)" href="https://bugs.ruby-lang.org/issues/9344">#9344</a> も)</p>
<p>Ruby 2.0/2.1へのバックポートはどうしましょうか。</p>
Ruby master - Bug #8716: segmation fault 正規表現で大量のグループを利用時
https://bugs.ruby-lang.org/issues/8716?journal_id=47819
2014-07-17T07:34:54Z
sorah (Sorah Fukumori)
her@sorah.jp
<ul><li><strong>Status</strong> changed from <i>Assigned</i> to <i>Closed</i></li></ul><p>閉じます</p>
<p>Edit → Status → Closed ですね。あるいは ChangeLog/commitMessage で [Bug <a class="issue tracker-1 status-5 priority-4 priority-default closed" title="Bug: segmation fault 正規表現で大量のグループを利用時 (Closed)" href="https://bugs.ruby-lang.org/issues/8716">#8716</a>] とか。<br>
<a href="http://img.sorah.jp/20140717_16.34_urw8d_Bug_8716_segmation_fault___rubytrunk__Ruby_Issue_Tracking_System.png" class="external">http://img.sorah.jp/20140717_16.34_urw8d_Bug_8716_segmation_fault___rubytrunk__Ruby_Issue_Tracking_System.png</a></p>
Ruby master - Bug #8716: segmation fault 正規表現で大量のグループを利用時
https://bugs.ruby-lang.org/issues/8716?journal_id=47820
2014-07-17T07:50:41Z
usa (Usaku NAKAMURA)
usa@garbagecollect.jp
<ul><li><strong>Backport</strong> set to <i>2.0.0: REQUIRED, 2.1: REQUIRED</i></li></ul><p>Ken Takata wrote:</p>
<blockquote>
<p>Ruby 2.0/2.1へのバックポートはどうしましょうか。</p>
</blockquote>
<p>該当修正部分のみを抽出して取り込むことになるかと思います。</p>
<p>しかし、backportチケットから持ってくるとBackport欄が空白になるというのは<br>
本当に困るのでどうにかならないものかしらん?</p>
Ruby master - Bug #8716: segmation fault 正規表現で大量のグループを利用時
https://bugs.ruby-lang.org/issues/8716?journal_id=47826
2014-07-17T09:07:34Z
k_takata (Ken Takata)
<ul></ul><p>クローズの際の取り決めがあるのかということを気にしていました。<br>
(勝手に閉じて良いのかとか、Backport 欄は誰が何を設定するとか。)</p>
<blockquote>
<p>該当修正部分のみを抽出して取り込むことになるかと思います。</p>
</blockquote>
<p>関連コミットを挙げておきます。以下の4件となります。</p>
<ol>
<li>
<p>alloca でスタックオーバーフロー<br>
<a href="https://github.com/k-takata/Onigmo/commit/b9fba1dc63ccb42a86e934011b468e6022fabb74" class="external">https://github.com/k-takata/Onigmo/commit/b9fba1dc63ccb42a86e934011b468e6022fabb74</a><br>
<a href="https://github.com/k-takata/Onigmo/commit/c1fc76b9bd463948ffc5058bc352bf93732f0314" class="external">https://github.com/k-takata/Onigmo/commit/c1fc76b9bd463948ffc5058bc352bf93732f0314</a><br>
<a href="https://github.com/k-takata/Onigmo/commit/a0efc0a200f7108ca3d5ac3039c8f952e0051619" class="external">https://github.com/k-takata/Onigmo/commit/a0efc0a200f7108ca3d5ac3039c8f952e0051619</a></p>
</li>
<li>
<p>キャプチャグループの数を ONIG_MAX_CAPTURE_GROUP_NUM (32767) 個に制限<br>
<a href="https://github.com/k-takata/Onigmo/commit/c7cda4ed5676167b0d01bb5555724f6164fbdb13" class="external">https://github.com/k-takata/Onigmo/commit/c7cda4ed5676167b0d01bb5555724f6164fbdb13</a></p>
</li>
</ol>
<p>1.9.3 もバックポート対象とした方が良いかもしれません。(が、コンフリクトが発生するはず。)</p>
Ruby master - Bug #8716: segmation fault 正規表現で大量のグループを利用時
https://bugs.ruby-lang.org/issues/8716?journal_id=47827
2014-07-17T09:16:34Z
usa (Usaku NAKAMURA)
usa@garbagecollect.jp
<ul></ul><p>Ken Takata wrote:</p>
<blockquote>
<p>クローズの際の取り決めがあるのかということを気にしていました。<br>
(勝手に閉じて良いのかとか、Backport 欄は誰が何を設定するとか。)</p>
</blockquote>
<p>直したら閉じていいですし、直ってるのに閉じてなかったら閉じていいです。<br>
……というくらいのゆるーい運用だと思います、現状は。<br>
あまり厳密なルール作ってもどうせ守られないので、こんなもんでよろしいかと。</p>
<p>Backport欄はUNKNOWNで放置するのが安全です。<br>
それなりの確信があればREQUIREDやDONTNEEDにしてもかまいません。<br>
削除だけは大変に困るので避けていただけると幸いです。</p>
<blockquote>
<blockquote>
<p>該当修正部分のみを抽出して取り込むことになるかと思います。<br>
関連コミットを挙げておきます。以下の4件となります。</p>
</blockquote>
</blockquote>
<p>ありがとうございます。助かります。</p>
<blockquote>
<p>1.9.3 もバックポート対象とした方が良いかもしれません。(が、コンフリクトが発生するはず。)</p>
</blockquote>
<p>1.9.3は通常メンテナンスフェーズを終えているので、セキュリティイシューしか取り扱いません。</p>
Ruby master - Bug #8716: segmation fault 正規表現で大量のグループを利用時
https://bugs.ruby-lang.org/issues/8716?journal_id=48410
2014-08-19T15:05:51Z
nagachika (Tomoyuki Chikanaga)
nagachika00@gmail.com
<ul><li><strong>Backport</strong> changed from <i>2.0.0: REQUIRED, 2.1: REQUIRED</i> to <i>2.0.0: REQUIRED, 2.1: DONE</i></li></ul><p>r47223 で <code>ruby_2_1</code> ブランチに r46831 から抽出して頂いた関連コミットの部分をバックポートしました。<br>
関連する変更点を提示して頂いて大変助かりました、ありがとうございます。</p>
Ruby master - Bug #8716: segmation fault 正規表現で大量のグループを利用時
https://bugs.ruby-lang.org/issues/8716?journal_id=48667
2014-09-05T04:42:51Z
usa (Usaku NAKAMURA)
usa@garbagecollect.jp
<ul><li><strong>Backport</strong> changed from <i>2.0.0: REQUIRED, 2.1: DONE</i> to <i>2.0.0: DONE, 2.1: DONE</i></li></ul><p>遅ればせながら <code>ruby_2_0_0</code> にも取り込みました。ありがとうございます。</p>