Kouhei Sutou
kou****@clear*****
2018年 2月 16日 (金) 22:28:49 JST
須藤です。 In <CADz=syPGU****@mail*****> "[groonga-dev,04594] Re: rroonga における drilldown について" on Fri, 16 Feb 2018 21:14:20 +0900, "t. Kad" <pute.****@gmail*****> wrote: > ちなみに、max_n_sub_records が負の数だと > StackOverflow で ruby インタプリタが死んだり、処理が戻ってこなくなったりしました。 > ライブラリ側で引数をチェックして Groonga::InvalidArgument を > 投げるようにしていただけると嬉しいです。 > ご一考いただければ幸いです。 たしかにチェックしたほうがいいですね。 で、コードを見てみるとRubyのCのAPIのNUM2UINT()を使っていまし た。 https://github.com/ranguba/rroonga/blob/master/ext/groonga/rb-grn-table.c#L1493 > max_n_sub_records = NUM2UINT(rb_max_n_sub_records); -1を指定するとオーバーフローして4294967295になっていたんです が、NUM2UINT()という名前なので、負の値だったら例外、という チェックはこの中でやった方がいいんじゃないかなぁと思いました。 ということで、Ruby本体に、NUM2UINT()に-1を指定すると例外じゃ なくてオーバーフローするんだけど例外の方がいいんじゃない?と フィードバックしておいてもらえませんか? https://bugs.ruby-lang.org/projects/ruby-trunk/issues 日本語で大丈夫です。 フィードバックするときのガイドラインみたいなものは↓にまとまっ ています。 https://bugs.ruby-lang.org/projects/ruby/wiki/HowToReportJa -- 須藤 功平 <kou****@clear*****> 株式会社クリアコード <http://www.clear-code.com/> Groongaベースの全文検索システムを総合サポート: http://groonga.org/ja/support/ パッチ採用 - プログラミングが楽しい人向けの採用プロセス: http://www.clear-code.com/recruitment/ OSS開発支援サービス: http://www.clear-code.com/blog/2016/6/27.html