[PHP-dev 708] Re: IMAP関数の日本語検索対応パッチ

Moriyoshi Koizumi php-dev@php.gr.jp
Sun, 02 Mar 2003 17:26:34 +0900


小泉です。

Isamu Yamamoto <yamamoto-ml@trustbee.com> wrote:
> >charset オプションの内容を estrndup() で複製して、最後に efree()
> >するようになっていますが、Z_STRVAL_PP(charset) を直接 mail_sort() や 
> >mail_search_full() に渡してもかまわないのではと思います。
> 
> アドバイス感謝です。
> ご指摘の通り修正したところ、charsetを指定せずに呼び出した場合に、
> Segmentation faultで落ちてしまいました。
> これを防ぐにはどうしたらいいのでしょうか?

あ、その場合を忘れてましたね…。

slst = mail_sort(imap_le_struct->imap_stream, Z_STRVAL_PP(charset), spg, 
mypgm, myargc >= 4 ? Z_LVAL_PP(flags) : NIL);

でしたら、

slst = mail_sort(imap_le_struct->imap_stream, (myargc >= 5 ? 
Z_STRVAL_PP(charset): NIL), spg, mypgm, myargc >= 4 ? Z_LVAL_PP(flags) : 
NIL);

このようにすればいかがでしょう?