[#37248] [Feature:1.9] Enumerator#inspect — "Yusuke ENDOH" <mame@...>

遠藤です。

12 messages 2008/12/02

[#37337] [Feature #841] Object#self — "rubikitch ." <redmine@...>

Feature #841: Object#self

13 messages 2008/12/09

[#37513] Current status of 1.9.1 RC1's issues — "Yugui (Yuki Sonoda)" <yugui@...>

Hi, folks

14 messages 2008/12/20
[#37516] Re: Current status of 1.9.1 RC1's issues — Masatoshi SEKI <m_seki@...> 2008/12/20

咳といいます。

[#37576] [BUG:trunk] encoding for stdio's — "Yugui (Yuki Sonoda)" <yugui@...>

Yuguiです。

11 messages 2008/12/24

[ruby-dev:37506] cgi.rbの先頭のboundary読み込み

From: "NAKAMURA, Hiroshi" <nahi@...>
Date: 2008-12-19 15:53:43 UTC
List: ruby-dev #37506
http://rubyforge.org/projects/multipart/ で、Rubyで作ったCGIにファイルを
アップロードしようとして(失敗して)気付いたのですが、cgi.rbの先頭の
boundaryまでの読み込みがstrict過ぎたりしないでしょうか。

multipartは、(処理の都合上っぽいですが)HTTP message bodyの先頭に改行が
ひとつ余計にはいるので、cgi.rbがうまく処理できないようです(l984で、
boundary + CRLFが、statusと合致しない; statusの先頭に余分な改行がついて
る)。先頭の特別扱いを消して、単純に汎用の処理にしてしまえばよさそうです
が、どうでしょうか。

trunkのほうは見た目実装が変わってますが、見た目だけの変更っぽいので、
同じ変更を入れてもよいのかも?

fileのuploadをしたのが初めてなので、JavaやPHPでどうなっているか、互換性
はどうかなど、どなたかご存知でしたらご指摘願います。

Attachments (2)

cgi_multipart.diff (988 Bytes, text/x-diff)
Index: ext/openssl/ossl_x509ext.c
===================================================================
--- ext/openssl/ossl_x509ext.c	(revision 20886)
+++ ext/openssl/ossl_x509ext.c	(working copy)
@@ -198,6 +198,7 @@
 	ossl_x509extfactory_set_subject_req(self, subject_req);
     if (!NIL_P(crl))
 	ossl_x509extfactory_set_crl(self, crl);
+    rb_iv_set(self, "@config", Qnil);
 
     return self;
 }
Index: lib/cgi.rb
===================================================================
--- lib/cgi.rb	(revision 20886)
+++ lib/cgi.rb	(working copy)
@@ -980,14 +980,6 @@
 
       # start multipart/form-data
       stdinput.binmode if defined? stdinput.binmode
-      boundary_size = boundary.size + EOL.size
-      content_length -= boundary_size
-      status = stdinput.read(boundary_size)
-      if nil == status
-        raise EOFError, "no content body"
-      elsif boundary + EOL != status
-        raise EOFError, "bad content body"
-      end
 
       loop do
         head = nil
signature.asc (486 Bytes, application/pgp-signature)

In This Thread

Prev Next