Browse files

Fixes the handling of the filename parameter.

Uses the RE used by Ruby in cgi.rb, that handles
the embedded semicolons in the filename correctly.

Signed-off-by: Christian Neukirchen <chneukirchen@gmail.com>
  • Loading branch information...
1 parent 354073d commit 337b758bfecc16d1401c336fb38684296dc280db @drodriguez drodriguez committed with chneukirchen Oct 8, 2009
Showing with 1 addition and 1 deletion.
  1. +1 −1 lib/rack/utils.rb
View
2 lib/rack/utils.rb
@@ -449,7 +449,7 @@ def self.parse_multipart(env)
head = buf.slice!(0, i+2) # First \r\n
buf.slice!(0, 2) # Second \r\n
- filename = head[/Content-Disposition:.* filename="?([^\";]*)"?/ni, 1]
+ filename = head[/Content-Disposition:.* filename=(?:"((?:\\.|[^\"])*)"|([^;\s]*))/ni, 1]
content_type = head[/Content-Type: (.*)#{EOL}/ni, 1]
name = head[/Content-Disposition:.*\s+name="?([^\";]*)"?/ni, 1] || head[/Content-ID:\s*([^#{EOL}]*)/ni, 1]

0 comments on commit 337b758

Please sign in to comment.