BugReport/211

http://sakura.qp.land.to/?BugReport%2F211


Top > BugReport > 211

正規表現キーワードで 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
  • bregexp.htmlのサンプルは罠です(笑)。自分はサクラエディタのソースから戻り値の意味を学習しました。bregonig.dll単体では再現しないようなので要調査ですが、メモリ確保エラーの可能性があるならパターンがコンパイル済みであってもエラー処理は必要でしたね。 -- 2017-01-26 (木) 12:14:11
  • https://twitter.com/k_takata/status/824327528852492289 -- 2017-01-26 (木) 23:18:05
  • 添付された a.cpp 改変で BMatchExW, BoMatchW を呼んだとしてもエラーが出ますね。ひょっとして「おま環」案件?bregonig.dllは配布32bitバイナリ、a.cppはWin10 64bit上で MinGW32bit GCC v5.3.0とVS2015ともにx86(32bit)ターゲットでビルドしていますが… -- 報告者? 2017-01-28 (土) 00:52:28
  • a.cppで-1:failed to allocate memory再現します。64bit版はOSがやばいです。サクラ32bitもちょっと重くなるのを確認。 -- Moca 2017-01-28 (土) 02:33:09
  • 鬼雲6.1.1/bregonig 4.11にてライブラリ側は修正されたようです。引き続きサクラ側はレビュー/コミット待ちです -- Moca 2017-01-29 (日) 22:33:42
  • コミットされたようなので[完了]にしてみました。 -- 2017-02-06 (月) 23:28:28

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

添付ファイル: filea.cpp 54件 [詳細]

リロード   新規 編集 凍結 差分 添付 複製 名前変更   ホーム 一覧 単語検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS
Last-modified: 2017-02-06 (月) 23:28:28 (527d)