File tree Expand file tree Collapse file tree 2 files changed +14
-1
lines changed
lib/action_controller/metal
test/controller/parameters Expand file tree Collapse file tree 2 files changed +14
-1
lines changed Original file line number Diff line number Diff line change @@ -963,7 +963,7 @@ def convert_value_to_parameters(value)
963
963
when Array
964
964
return value if converted_arrays . member? ( value )
965
965
converted = value . map { |_ | convert_value_to_parameters ( _ ) }
966
- converted_arrays << converted
966
+ converted_arrays << converted . dup
967
967
converted
968
968
when Hash
969
969
self . class . new ( value )
Original file line number Diff line number Diff line change @@ -253,6 +253,19 @@ def walk_permitted(params)
253
253
assert_not_predicate permitted [ :users ] . last , :permitted?
254
254
end
255
255
256
+ test "grow until set rehashes" do
257
+ params = ActionController ::Parameters . new ( users : [ { id : 1 } ] )
258
+
259
+ permitted = params . permit ( users : [ :id ] )
260
+ permitted [ :users ] << { injected : 1 }
261
+ 20 . times { |i |
262
+ list = [ "foo#{ i } " ]
263
+ permitted [ :xx ] = list
264
+ assert_equal permitted [ :xx ] , list
265
+ }
266
+ assert_not_predicate permitted [ :users ] . last , :permitted?
267
+ end
268
+
256
269
test "fetch doesn't raise ParameterMissing exception if there is a default" do
257
270
assert_equal "monkey" , @params . fetch ( :foo , "monkey" )
258
271
assert_equal "monkey" , @params . fetch ( :foo ) { "monkey" }
You can’t perform that action at this time.
0 commit comments