Blob Blame History Raw
diff --git lib/action_controller/vendor/html-scanner/html/node.rb.orig lib/action_controller/vendor/html-scanner/html/node.rb
index 8525072..74c381b 100644
--- lib/action_controller/vendor/html-scanner/html/node.rb.orig
+++ lib/action_controller/vendor/html-scanner/html/node.rb
@@ -156,7 +156,7 @@ module HTML #:nodoc:
           end
 
           closing = ( scanner.scan(/\//) ? :close : nil )
-          return Text.new(parent, line, pos, content) unless name = scanner.scan(/[\w:-]+/)
+          return Text.new(parent, line, pos, content) unless name = scanner.scan(/[^\s!>\/]+/)
           name.downcase!
 
           unless closing
diff --git test/template/html-scanner/sanitizer_test.rb.orig test/template/html-scanner/sanitizer_test.rb
index 3e80317..889a0f7 100644
--- test/template/html-scanner/sanitizer_test.rb
+++ test/template/html-scanner/sanitizer_test.rb
@@ -5,6 +5,13 @@ class SanitizerTest < ActionController::TestCase
     @sanitizer = nil # used by assert_sanitizer
   end
 
+  def test_strip_tags_with_quote
+    sanitizer = HTML::FullSanitizer.new
+    string    = '<" <img src="trollface.gif" onload="alert(1)"> hi'
+
+    assert_equal ' hi', sanitizer.sanitize(string)
+  end
+
   def test_strip_tags
     sanitizer = HTML::FullSanitizer.new
     assert_equal("<<<bad html", sanitizer.sanitize("<<<bad html"))