Issue #8716 has been updated by Ken Takata.


クローズの際の取り決めがあるのかということを気にしていました。
(勝手に閉じて良いのかとか、Backport 欄は誰が何を設定するとか。)

> 該当修正部分のみを抽出して取り込むことになるかと思います。

関連コミットを挙げておきます。以下の4件となります。

1. alloca でスタックオーバーフロー
https://github.com/k-takata/Onigmo/commit/b9fba1dc63ccb42a86e934011b468e6022fabb74
https://github.com/k-takata/Onigmo/commit/c1fc76b9bd463948ffc5058bc352bf93732f0314
https://github.com/k-takata/Onigmo/commit/a0efc0a200f7108ca3d5ac3039c8f952e0051619

2. キャプチャグループの数を ONIG_MAX_CAPTURE_GROUP_NUM (32767) 個に制限
https://github.com/k-takata/Onigmo/commit/c7cda4ed5676167b0d01bb5555724f6164fbdb13

1.9.3 もバックポート対象とした方が良いかもしれません。(が、コンフリクトが発生するはず。)

----------------------------------------
Bug #8716: segmation fault 正規表現で大量のグループを利用時
https://bugs.ruby-lang.org/issues/8716#change-47826

* Author: taka-yoshi taka
* Status: Closed
* Priority: Normal
* Assignee: Yui NARUSE
* Category: regexp
* Target version: current: 2.2.0
* ruby -v: trunk
* Backport: 2.0.0: REQUIRED, 2.1: REQUIRED
----------------------------------------
=begin
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}/=~''"

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



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