[groonga-dev,00231] grn_expr_snip()がn_tagsの値が0で呼ばれるとSIGFPEする

Back to archive index

Ryo Onodera onode****@clear*****
2009年 10月 14日 (水) 13:18:50 JST


小野寺です。

grn_expr_snip()がn_tagsの値が0で呼ばれた場合のテストケースを追加したとこ
ろSIGFPEしてしまうことが判明しました。

原因はgrn_expr_snip()内にある次のコードがn_tagsの値が0で実行されてしまう
からです。
(i + 1) % n_tags

その後、とりあえずSIGFPEはしなくなるような、かなり暫定的なパッチを作って
みました。現在のパッチの不安な点としては、n_tagsが0かどうかで別々になっ
ているループをまとめたほうがいいかもしれません。あるいはn_tagsが0の場合
は関数の先頭の方でエラー扱いにしたほうがいいのかもしれません。

私のgroongaのフォークのmasterブランチは他のパッチが混じっていますので、
このバグのためのブランチを新たに作り、そこに最新のgroongaをpullしてき
て、自分のパッチをコミットしました。その新しいブランチのURLとコミットの
URLを載せておきます。

ブランチ
http://github.com/ryoqun/groonga/tree/grn_expr_snip
テストケースのコミット
http://github.com/ryoqun/groonga/commit/c050829063fbb17e267e1f55ff5ce4c171b2a458
修正のコミット
http://github.com/ryoqun/groonga/commit/2f4183ccea371152f8ee9cedbfb7b685536b0bf8

-- 
小野寺 諒 <onode****@clear*****>
株式会社クリアコード (http://www.clear-code.com/)




groonga-dev メーリングリストの案内
Back to archive index