diff options
author | Chris Griego <cgriego@gmail.com> | 2011-12-06 17:59:31 -0600 |
---|---|---|
committer | Chris Griego <cgriego@gmail.com> | 2011-12-06 17:59:31 -0600 |
commit | 5f4bb6022a10cab144e4485e61e842b8d14a7936 (patch) | |
tree | dc8b2ccae9c4474bc0f0bbee5a5834695485964e /lib/rack/methodoverride.rb | |
parent | 39e858d9ab638772f0489bceb94b1f8b1bc212be (diff) | |
download | rack-5f4bb6022a10cab144e4485e61e842b8d14a7936.tar.gz |
Handle EOFError exception from malformed multipart in MethodOverride middleware
Diffstat (limited to 'lib/rack/methodoverride.rb')
-rw-r--r-- | lib/rack/methodoverride.rb | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/lib/rack/methodoverride.rb b/lib/rack/methodoverride.rb index e1bca56d..48d6afdd 100644 --- a/lib/rack/methodoverride.rb +++ b/lib/rack/methodoverride.rb @@ -11,10 +11,7 @@ module Rack def call(env) if env["REQUEST_METHOD"] == "POST" - req = Request.new(env) - method = req.POST[METHOD_OVERRIDE_PARAM_KEY] || - env[HTTP_METHOD_OVERRIDE_HEADER] - method = method.to_s.upcase + method = method_override(env) if HTTP_METHODS.include?(method) env["rack.methodoverride.original_method"] = env["REQUEST_METHOD"] env["REQUEST_METHOD"] = method @@ -23,5 +20,14 @@ module Rack @app.call(env) end + + def method_override(env) + req = Request.new(env) + method = req.POST[METHOD_OVERRIDE_PARAM_KEY] || + env[HTTP_METHOD_OVERRIDE_HEADER] + method.to_s.upcase + rescue EOFError + "" + end end end |