[#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:47606] [ruby-trunk - Bug #8701] REXML bug in parsing notation declarations

From: "kou (Kouhei Sutou)" <kou@...>
Date: 2013-08-10 03:53:58 UTC
List: ruby-dev #47606
Issue #8701 has been updated by kou (Kouhei Sutou).


ありがとうございます!

既存のテストを整理してから取り込んだので遅くなってしまいました。

DOCTYPEの中のやつは全部\Aを意図していそうだったのでそうしました。DOCTYPEの外のやつはパッと見だと判断がつかなかったのでまだそのままにしてあります。

----------------------------------------
Bug #8701: REXML bug in parsing notation declarations
https://bugs.ruby-lang.org/issues/8701#change-41056

Author: ohai (Ippei Obayashi)
Status: Closed
Priority: Normal
Assignee: kou (Kouhei Sutou)
Category: lib
Target version: 
ruby -v: ruby 2.1.0dev (2013-07-28 trunk 42214) [x86_64-linux]
Backport: 1.9.3: UNKNOWN, 2.0.0: UNKNOWN


添付したコード(test_notationdecl.rb)を実行すると、["x", "y", "z"] が表示することが期待されますが、["y", "z"] と表示されます。

パースに使っている正規表現の問題で, 添付したパッチ(rexml-dtd-notationdecl-fix.patch)で直ると思います。
テストも添付しています。

このパーサではあちこちで ^ で始まる正規表現が使われていますが、おそらくすべて \A のつもりであろうと思われます。添付したパッチでは関係のある部分だけ修正していますが、他の正規表現も修正したほうが良いかもしれません。


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

In This Thread

Prev Next