aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack
diff options
context:
space:
mode:
authorAaron Patterson <aaron.patterson@gmail.com>2012-03-15 10:14:13 -0700
committerAaron Patterson <aaron.patterson@gmail.com>2012-03-15 10:14:13 -0700
commitf9181377924a77dff328c49f51b6dc66c4705e2b (patch)
tree01cb0affd57393b9654073dd35dce3ad544c0eda /actionpack
parent9dfb41fd2e90398cf96db5f33105be26a09cb92c (diff)
parent55cac81bc50b7b825e12e1c42edda398094d67ef (diff)
downloadrails-f9181377924a77dff328c49f51b6dc66c4705e2b.tar.gz
rails-f9181377924a77dff328c49f51b6dc66c4705e2b.tar.bz2
rails-f9181377924a77dff328c49f51b6dc66c4705e2b.zip
Merge pull request #5338 from mreinsch/3-2-static_invalid_byte_sequence
3 2 static invalid byte sequence
Diffstat (limited to 'actionpack')
-rw-r--r--actionpack/lib/action_dispatch/middleware/static.rb1
-rw-r--r--actionpack/test/dispatch/static_test.rb4
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 31185fec07..ad11b6a211 100644
--- a/actionpack/lib/action_dispatch/middleware/static.rb
+++ b/actionpack/lib/action_dispatch/middleware/static.rb
@@ -38,6 +38,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 949deefa9d..856746c451 100644
--- a/actionpack/test/dispatch/static_test.rb
+++ b/actionpack/test/dispatch/static_test.rb
@@ -6,6 +6,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