[mew-dist 19919] Re: incm-0.6 beta
Koga Youichirou
y-koga at example.com
2001年 12月 25日 (火) 18:26:01 JST
Yasunari Momoi <momo at example.com>:
> 以下の修正をした,incm 0.6 beta を作りました.動作確認/レビュー
> していただけると嬉しいです.
sprintf() 全般、境界チェックしましょう。
たとえば init_env() で環境変数 HOME が PATH_MAX - "/Maildir" の長さよ
り長いと溢れます (getenv() はその後の処理要注意の関数として有名です)。
他の個所も溢れる可能性がありそうです。
access() してから fopen() でファイル作るのはやめて、open() で
O_CREAT|O_EXCL (適宜 O_RDWR や O_WRONLY などを追加する) してエラーチェッ
クするのが定石かな (copyfile() ではそうしていますね)。FILE 構造体を使
いたいなら、open() でエラーチェックしてから fdopen()。fopen() でファイ
ル作ったり書き込みのために open() するのは避けた方がいいでしょう。
fopen() や fputs() がしくったら unlink() するのも怖いかも。
maildir_names() の len の +5 や "/cur", "/new", "/tmp" の決め打ちは
いまひとつかも。
lock_mbox() でロックファイルの stat() 取って古いと削除している処理、
なんか怖い気がします。
----
こがよういちろう
Mew-dist メーリングリストの案内