diff options
author | Rafael França <rafaelmfranca@gmail.com> | 2017-07-17 13:44:46 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-07-17 13:44:46 -0400 |
commit | 5a8b430d5e7e72f19727c360abdb0ac6503d073c (patch) | |
tree | 757323c971799c081751d74aeecf2e89e8eed540 | |
parent | 9914964514fc43f6eadba06a47fccdf95b7806f7 (diff) | |
parent | 2513a410f56413031738084b16aa9565e251ff66 (diff) | |
download | rails-5a8b430d5e7e72f19727c360abdb0ac6503d073c.tar.gz rails-5a8b430d5e7e72f19727c360abdb0ac6503d073c.tar.bz2 rails-5a8b430d5e7e72f19727c360abdb0ac6503d073c.zip |
Merge pull request #29793 from arthurnn/arthurnn/param_encoding_error_msg
Scrub the invalid paramter value before using it in the error
-rw-r--r-- | actionpack/lib/action_dispatch/request/utils.rb | 2 | ||||
-rw-r--r-- | actionpack/test/dispatch/request_test.rb | 3 |
2 files changed, 3 insertions, 2 deletions
diff --git a/actionpack/lib/action_dispatch/request/utils.rb b/actionpack/lib/action_dispatch/request/utils.rb index 4f79c4c21e..daac68d4b4 100644 --- a/actionpack/lib/action_dispatch/request/utils.rb +++ b/actionpack/lib/action_dispatch/request/utils.rb @@ -32,7 +32,7 @@ module ActionDispatch unless params.valid_encoding? # Raise Rack::Utils::InvalidParameterError for consistency with Rack. # ActionDispatch::Request#GET will re-raise as a BadRequest error. - raise Rack::Utils::InvalidParameterError, "Non UTF-8 value: #{params}" + raise Rack::Utils::InvalidParameterError, "Invalid encoding for parameter: #{params.scrub}" end end end diff --git a/actionpack/test/dispatch/request_test.rb b/actionpack/test/dispatch/request_test.rb index 899b27b962..61ae99eadc 100644 --- a/actionpack/test/dispatch/request_test.rb +++ b/actionpack/test/dispatch/request_test.rb @@ -1024,7 +1024,8 @@ class RequestParameters < BaseRequestTest request.path_parameters = { foo: "\xBE" } end - assert_equal "Invalid path parameters: Non UTF-8 value: \xBE", err.message + assert_predicate err.message, :valid_encoding? + assert_equal "Invalid path parameters: Invalid encoding for parameter: �", err.message end test "parameters not accessible after rack parse error of invalid UTF8 character" do |