From: Koji Arai Date: 1999-05-30T04:48:45+09:00 Subject: [ruby-dev:7023] fail to match regexp 新井です。 ruby-1.3.3-990525 で正規表現マッチが失敗することが あります。 regex.c で、3755行でPOP_FAILURE_POINT()したあと、 3767行目のstackp[-2]が領域外なためのようです。 # たまたま、stackp[-2] == d が成立してしまいました。 # こんなレアな小石(Bug)によくつまづくなぁと自分で # 感心したりして(^^; 一応、以下のようなパッチで逃れましたが、なんか美し くないような。 Index: regex.c =================================================================== RCS file: /home/cvs/ruby/regex.c,v retrieving revision 1.1.1.3.2.22 diff -u -r1.1.1.3.2.22 regex.c --- regex.c 1999/05/25 08:26:13 1.1.1.3.2.22 +++ regex.c 1999/05/29 18:27:13 @@ -3764,7 +3764,7 @@ case jump: nofinalize: EXTRACT_NUMBER_AND_INCR(mcnt, p); - if (mcnt < 0 && stackp[-2] == d) /* avoid infinit loop */ + if (mcnt < 0 && stackp > stackb && stackp[-2] == d) /* avoid infinit loop */ goto fail; p += mcnt; continue;