BugReport/211 のバックアップ(No.4)




正規表現キーワードで dll がエラーを返すと落ちる

  • ページ: BugReport
  • 投稿者: anonymous
  • 優先順位: 普通
  • 状態: 提案
  • カテゴリー: 正規表現キーワード
  • 投稿日: 2017-01-25 (水) 12:49:24
  • バージョン: 2.3.1.0

メッセージ

再現: bregonig v4.10 で正規表現キーワードに /^(?~\S+)TEST/k を設定して、行頭からTESTと入力すると落ちる。 原因: bregonig.dllがエラーで-1を返すとき、CRegexKeyword.cpp の CRegexKeyword::RegexIsKeyword() のエラーハンドリング漏れで落ちるため。 line.434 を if( matched ) → if( matched > 0 ) にすると落ちなくなる。 非含包オペレータはまだ様子見でいいと思う。

  • エラーの内容は "failed to allocate memory" ですね。なんでだろう。 -- 2017-01-25 (水) 20:42:07
  • http://www.hi-ho.ne.jp/babaq/bregexp.html -- 2017-01-26 (木) 02:49:42
  • ここの(Bregexpの)BMatchのサンプルではwhile(BMatch(...))と書かれてるから、戻り値の意味が違うんですかね。 -- Moca 2017-01-26 (木) 02:50:44
  • bregonigのほうの説明では「戻り値、負、エラー」と記述されてました -- Moca 2017-01-26 (木) 02:52:49
  • とりあえずpatch化しました。upatchid:1095 -- Moca 2017-01-26 (木) 03:01:52

URL B I U SIZE Black Maroon Green Olive Navy Purple Teal Gray Silver Red Lime Yellow Blue Fuchsia Aqua White
filea.cpp 152件 [詳細]
[添付ファイル一覧] [全ページの添付ファイル一覧]
アップロード可能最大ファイルサイズは 2,048KB です。

    ホーム 一覧 単語検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS