diff options
author | Michael Reinsch <michael@mobalean.com> | 2012-03-08 20:26:10 +0900 |
---|---|---|
committer | Michael Reinsch <michael@mobalean.com> | 2012-03-08 20:41:25 +0900 |
commit | 7d5fbf846b432821d0179553fa902d2de9372172 (patch) | |
tree | a32401885068ab5cbd68fd6d08a513bdf34fe2b9 | |
parent | efc0d0373e04705a90dd89dd352274bd8e409ca1 (diff) | |
download | rails-7d5fbf846b432821d0179553fa902d2de9372172.tar.gz rails-7d5fbf846b432821d0179553fa902d2de9372172.tar.bz2 rails-7d5fbf846b432821d0179553fa902d2de9372172.zip |
fix ArgumentError being raised in case of invalid byte sequences
-rw-r--r-- | actionpack/lib/action_dispatch/middleware/static.rb | 1 | ||||
-rw-r--r-- | actionpack/test/dispatch/static_test.rb | 4 |
2 files changed, 5 insertions, 0 deletions
diff --git a/actionpack/lib/action_dispatch/middleware/static.rb b/actionpack/lib/action_dispatch/middleware/static.rb index 63b7422287..9073e6582d 100644 --- a/actionpack/lib/action_dispatch/middleware/static.rb +++ b/actionpack/lib/action_dispatch/middleware/static.rb @@ -39,6 +39,7 @@ module ActionDispatch end def escape_glob_chars(path) + path.force_encoding('binary') if path.respond_to? :force_encoding path.gsub(/[*?{}\[\]]/, "\\\\\\&") end end diff --git a/actionpack/test/dispatch/static_test.rb b/actionpack/test/dispatch/static_test.rb index 092ca3e20a..112f470786 100644 --- a/actionpack/test/dispatch/static_test.rb +++ b/actionpack/test/dispatch/static_test.rb @@ -7,6 +7,10 @@ module StaticTests assert_equal "Hello, World!", get("/nofile").body end + def test_handles_urls_with_bad_encoding + assert_equal "Hello, World!", get("/doorkeeper%E3E4").body + end + def test_sets_cache_control response = get("/index.html") assert_html "/index.html", response |