morita
morit****@razil*****
2008年 11月 7日 (金) 02:14:18 JST
森です。 いろいろパッチありがとうございます! とても助かります。 main trunkに反映すると共に、 これらを取り込んでsenna-1.1.4としてリリースさせていただきます〜。 Kazuho Oku さんは書きました: > 奥@サイボウズ・ラボです。 > > UTF-8 等で壊れた文字列を受け取った場合に get_phrase > 内で無限ループに入ってしまうという症状があったのでパッチを添付します。呼び出し側で対処すべき問題ではないか、という議論はあり得るかと思いますが、Tritonn-1.0.10 > だと素通しでした。 > #ウェブアプリもバイト指向なので素通り... そしてサービスが固まったorz > > --- ../senna-1.1.3.orig/lib/query.c 2008-05-21 18:26:19.000000000 +0900 > +++ ./lib/query.c 2008-11-06 22:36:30.000000000 +0900 > @@ -145,7 +145,10 @@ > break; > } > len = sen_str_charlen_nonnull(s, q->str_end, q->encoding); > - if (len == 1) { > + if (len == 0) { > + /* invalid string containing malformed multibyte char */ > + return NULL; > + } else if (len == 1) { > if (*s == SEN_QUERY_QUOTER) { > q->cur = s + 1; > break; > @@ -246,7 +256,9 @@ > return NIL; > case SEN_QUERY_QUOTEL : > q->cur++; > - token = get_phrase(q); > + if ((token = get_phrase(q)) == NULL) { > + return NIL; > + } > break; > case SEN_QUERY_PREFIX : > q->cur++; >