[#30220] schedule for Ruby 1.8.6 — "Akinori MUSHA" <knu@...>

 ruby-core を読んでいない人もいると思うので、ここでもアナウンス

20 messages 2007/01/30

[ruby-dev:30182] cgi.rb のファイル名取得処理

From: とみたまさひろ <tommy@...>
Date: 2007-01-24 15:34:56 UTC
List: ruby-dev #30182
とみたです。

CGI でファイル名中に「"」や「;」を含むファイルを POST すると、cgi.rb 
がそれ以降の文字を落としてしまいます。

--- cgi.rb.orig	2006-12-03 17:06:27.000000000 +0900
+++ cgi.rb	2007-01-25 00:26:02.000000000 +0900
@@ -1037,8 +1037,8 @@
 
         body.rewind
 
-        /Content-Disposition:.* filename="?([^\";]*)"?/ni.match(head)
-	filename = ($1 or "")
+        /Content-Disposition:.* filename=(?:"((?:\\.|[^\"])*)"|([^;]*))/ni.match(head)
+	filename = ($1 or $2 or "")
 	if /Mac/ni.match(env_table['HTTP_USER_AGENT']) and
 	    /Mozilla/ni.match(env_table['HTTP_USER_AGENT']) and
 	    (not /MSIE/ni.match(env_table['HTTP_USER_AGENT']))

-- 
とみたまさひろ <tommy@tmtm.org> 『Postfix辞典』ISBN:4798110353
3469 42CC 4D32 F53C AD98  65A5 8C37 FF09 69C1 6040

In This Thread

Prev Next