青山です。

On Mon, 12 Jun 2000 09:01:52 +0900,
matz / netlab.co.jp (Yukihiro Matsumoto) wrote:

> cgi.rbのread_multipart中でreadの戻り値に直接sizeを渡している
> ところがあります。が、readはnilを返すことがあるので、ちゃん
> とチェックした方がよろしいのではないかと思います。いかがでしょ
> う?

そうですね。read を使っていて nil を考慮していないのは、ちょうどここだ
けのようでした。ただ、すでに mod_ruby の件で書いたように、ここで nil
が返ってくるのは異常ですから、チェックを入れるにしても、そのまま実行を
続けるわけにはいきませんから、結局は別の例外で止める事にはなりますが。

こんな感じの例外で止めましょうか。

$ ruby -e'raise EOFError, "no content body"'
-e:1: no content body (EOFError)

status = stdinput.read((boundary + EOL).size)
if nil == status
  raise EOFError, "no content body"
end

もう少し親切なメッセージが欲しい気もしますが、まあ、今回のように
mod_ruby の問題にでもぶつからない限りは、おそらく見る事は無いでしょう。


-- 
青山 和光 Wakou Aoyama <wakou / fsinet.or.jp>