aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib/action_dispatch/http/request.rb
diff options
context:
space:
mode:
authorAaron Patterson <aaron.patterson@gmail.com>2012-05-31 11:25:54 -0700
committerAaron Patterson <aaron.patterson@gmail.com>2012-05-31 11:25:54 -0700
commitd66fd081759af32e57baabf7888823cfd9bcebd0 (patch)
tree85d312ba731c283be5bccd6343861dbad0023aac /actionpack/lib/action_dispatch/http/request.rb
parentf8f6ad6ebc1602afa6af3c9cb297ea7896fb8b3a (diff)
parentdff6db18840e2fd1dd3f3e4ef0ae7a9a3986d01d (diff)
downloadrails-d66fd081759af32e57baabf7888823cfd9bcebd0.tar.gz
rails-d66fd081759af32e57baabf7888823cfd9bcebd0.tar.bz2
rails-d66fd081759af32e57baabf7888823cfd9bcebd0.zip
Merge branch '3-2-stable-sec' into 3-2-stable
* 3-2-stable-sec: Strip [nil] from parameters hash. Thanks to Ben Murphy for reporting this! predicate builder should not recurse for determining where columns. Thanks to Ben Murphy for reporting this bumping to 3.2.4.rc1
Diffstat (limited to 'actionpack/lib/action_dispatch/http/request.rb')
-rw-r--r--actionpack/lib/action_dispatch/http/request.rb22
1 files changed, 22 insertions, 0 deletions
diff --git a/actionpack/lib/action_dispatch/http/request.rb b/actionpack/lib/action_dispatch/http/request.rb
index 820921252d..adbb5d1346 100644
--- a/actionpack/lib/action_dispatch/http/request.rb
+++ b/actionpack/lib/action_dispatch/http/request.rb
@@ -247,6 +247,28 @@ module ActionDispatch
LOCALHOST.any? { |local_ip| local_ip === remote_addr && local_ip === remote_ip }
end
+ protected
+
+ # Remove nils from the params hash
+ def deep_munge(hash)
+ hash.each_value do |v|
+ case v
+ when Array
+ v.grep(Hash) { |x| deep_munge(x) }
+ when Hash
+ deep_munge(v)
+ end
+ end
+
+ keys = hash.keys.find_all { |k| hash[k] == [nil] }
+ keys.each { |k| hash[k] = nil }
+ hash
+ end
+
+ def parse_query(qs)
+ deep_munge(super)
+ end
+
private
def check_method(name)