1
0
Fork 0
mirror of https://github.com/sinatra/sinatra synced 2023-03-27 23:18:01 -04:00

Handle EOFError raised by Rack

This commit is contained in:
tamazon 2022-01-31 02:27:32 +09:00 committed by Jordan Owens
parent 59d8b26b16
commit abf3c76f09
2 changed files with 11 additions and 0 deletions

View file

@ -78,6 +78,8 @@ module Sinatra
super
rescue Rack::Utils::ParameterTypeError, Rack::Utils::InvalidParameterError => e
raise BadRequest, "Invalid query parameters: #{Rack::Utils.escape_html(e.message)}"
rescue EOFError => e
raise BadRequest, "Invalid multipart/form-data: #{Rack::Utils.escape_html(e.message)}"
end
class AcceptEntry

View file

@ -17,6 +17,15 @@ class RequestTest < Minitest::Test
assert_equal 'bar', request.params['foo']
end
it 'raises Sinatra::BadRequest when multipart/form-data request has no content' do
request = Sinatra::Request.new(
'REQUEST_METHOD' => 'POST',
'CONTENT_TYPE' => 'multipart/form-data; boundary=dummy',
'rack.input' => StringIO.new('')
)
assert_raises(Sinatra::BadRequest) { request.params }
end
it 'is secure when the url scheme is https' do
request = Sinatra::Request.new('rack.url_scheme' => 'https')
assert request.secure?