mirror of
https://github.com/github/rails.git
synced 2026-02-17 01:21:42 -05:00
Fixed that ActionController::Base#read_multipart would fail if boundary was exactly 10240 bytes (closes #10886) [ariejan]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@9113 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
This commit is contained in:
@@ -1,5 +1,7 @@
|
||||
*SVN*
|
||||
|
||||
* Fixed that ActionController::Base#read_multipart would fail if boundary was exactly 10240 bytes #10886 [ariejan]
|
||||
|
||||
* Fixed HTML::Tokenizer (used in sanitize helper) didn't handle unclosed CDATA tags #10071 [esad, packagethief]
|
||||
|
||||
* Improve documentation. [Radar, Jan De Poorter, chuyeow, xaviershay, danger, miloops, Xavier Noria, Sunny Ripert]
|
||||
|
||||
@@ -585,7 +585,6 @@ module ActionController
|
||||
else
|
||||
params[name] = [content]
|
||||
end
|
||||
break if buf.size == 0
|
||||
break if content_length == -1
|
||||
end
|
||||
raise EOFError, "bad boundary end of body part" unless boundary_end=~/--/
|
||||
|
||||
@@ -601,7 +601,7 @@ class UrlEncodedRequestParameterParsingTest < Test::Unit::TestCase
|
||||
"ie_products[string]" => [ UploadedStringIO.new("Microsoft") ],
|
||||
"ie_products[file]" => [ ie_file ],
|
||||
"text_part" => [non_file_text_part]
|
||||
}
|
||||
}
|
||||
|
||||
expected_output = {
|
||||
"something" => "",
|
||||
@@ -744,6 +744,25 @@ class MultipartRequestParameterParsingTest < Test::Unit::TestCase
|
||||
assert_equal 'contents', file.read
|
||||
end
|
||||
|
||||
def test_boundary_problem_file
|
||||
params = process('boundary_problem_file')
|
||||
assert_equal %w(file foo), params.keys.sort
|
||||
|
||||
file = params['file']
|
||||
foo = params['foo']
|
||||
|
||||
if RUBY_VERSION > '1.9'
|
||||
assert_kind_of File, file
|
||||
else
|
||||
assert_kind_of Tempfile, file
|
||||
end
|
||||
|
||||
assert_equal 'file.txt', file.original_filename
|
||||
assert_equal "text/plain", file.content_type
|
||||
|
||||
assert_equal 'bar', foo
|
||||
end
|
||||
|
||||
def test_large_text_file
|
||||
params = process('large_text_file')
|
||||
assert_equal %w(file foo), params.keys.sort
|
||||
|
||||
Reference in New Issue
Block a user