aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/test
diff options
context:
space:
mode:
authorRafael Mendonça França <rafaelmfranca@gmail.com>2014-02-11 22:56:50 -0200
committerRafael Mendonça França <rafaelmfranca@gmail.com>2014-02-18 15:02:54 -0300
commit388d2f88886e4da8cc9fd9e14c80a4021ef47da1 (patch)
treee4476da834119761ca19928402217485bd7ce5f3 /actionpack/test
parenteaa2101b294ef546cc3fb35cc3f49c73849ac470 (diff)
downloadrails-388d2f88886e4da8cc9fd9e14c80a4021ef47da1.tar.gz
rails-388d2f88886e4da8cc9fd9e14c80a4021ef47da1.tar.bz2
rails-388d2f88886e4da8cc9fd9e14c80a4021ef47da1.zip
Use the reference for the mime type to get the format
Before we were calling to_sym in the mime type, even when it is unknown what can cause denial of service since symbols are not removed by the garbage collector. Fixes: CVE-2014-0082
Diffstat (limited to 'actionpack/test')
-rw-r--r--actionpack/test/template/text_test.rb17
1 files changed, 17 insertions, 0 deletions
diff --git a/actionpack/test/template/text_test.rb b/actionpack/test/template/text_test.rb
new file mode 100644
index 0000000000..d899d54589
--- /dev/null
+++ b/actionpack/test/template/text_test.rb
@@ -0,0 +1,17 @@
+require 'abstract_unit'
+
+class TextTest < ActiveSupport::TestCase
+ test 'formats returns symbol for recognized MIME type' do
+ assert_equal [:text], ActionView::Template::Text.new('', :text).formats
+ end
+
+ test 'formats returns string for recognized MIME type when MIME does not have symbol' do
+ foo = Mime::Type.lookup("foo")
+ assert_nil foo.to_sym
+ assert_equal ['foo'], ActionView::Template::Text.new('', foo).formats
+ end
+
+ test 'formats returns string for unknown MIME type' do
+ assert_equal ['foo'], ActionView::Template::Text.new('', 'foo').formats
+ end
+end