Bug #5451

cgi/core.rbのread_multipart()で$stdioを直接使っているために、ruby-fcgiでmultipart/form-dataが使えない

Added by kazuhiko (Kazuhiko Shiozaki) 7 months ago. Updated 7 months ago.

[ruby-dev:44601]
Status:Closed Start date:10/16/2011
Priority:Normal Due date:
Assignee:xibbar (Takeyuki Fujioka) % Done:

100%

Category:lib
Target version:1.9.3
ruby -v:ruby 1.9.3dev (2011-09-23 revision 33323) [x86_64-linux]

Description

ruby-fcgiを使うと、multipart/form-dataの時にPOSTできないことに気づきました。 調べたところ、ruby-fcgiでは、CGI#stdinputを@request.inに上書きしているのに、cgi/core.rbのread_multipart()でだけ$stdinを直接使っているために、以下のように例外が発生します。 ( https://github.com/tdiary/tdiary-core/issues/102 ) /usr/local/ruby-1.9/lib/ruby/1.9.1/cgi/core.rb:468:in `read': Invalid argument - <STDIN> (Errno::EINVAL) \tfrom /usr/local/ruby-1.9/lib/ruby/1.9.1/cgi/core.rb:468:in `read_multipart' \tfrom /usr/local/ruby-1.9/lib/ruby/1.9.1/cgi/core.rb:630:in `initialize_query' \tfrom /usr/local/ruby-1.9/lib/ruby/1.9.1/cgi/core.rb:806:in `initialize' \tfrom <main>:18:in `initialize' \tfrom /home/tdiary/tdiary/tdiary-core/misc/lib/fcgi_patch.rb:74:in `new' レポジトリをさかのぼると、 r19663 で、それまでのstdinput()を使っていたコードから$stdinを直接使うようになったようですが、何か強い理由があるのでなければ、cgi/core.rbの他のコードと同様に、ここでもstdinputを使ってもらえないでしょうか。 上述の問題は、その修正だけで解決することを確認しています。 また、1.9.3RC1で確認していますが、cgi/core.rbはtrunkのものと全く同一です。 かずひこ

Associated revisions

Revision 33472
Added by xibbar (Takeyuki Fujioka) 7 months ago

Tue Oct 18 02:24:19 2011 Takeyuki FUJIOKA <xibbar@ruby-lang.org> * lib/cgi/core.rb (QueryExtension#read_multiparat): replace 'stdinput' from '$stdin' because using fast cgi. [Bug #5451]

History

Updated by xibbar (Takeyuki Fujioka) 7 months ago

  • Status changed from Open to Closed
  • % Done changed from 0 to 100
This issue was solved with changeset r33472. Kazuhiko, thank you for reporting this issue. Your contribution to Ruby is greatly appreciated. May Ruby be with you. ---------- Tue Oct 18 02:24:19 2011 Takeyuki FUJIOKA <xibbar@ruby-lang.org> * lib/cgi/core.rb (QueryExtension#read_multiparat): replace 'stdinput' from '$stdin' because using fast cgi. [Bug #5451]

Also available in: Atom PDF