From b167248b21a8da63be871ec6815d117a8efa25f3 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Mon, 9 May 2005 11:20:19 +0000 Subject: Fixed the HTML scanner used by assert_tag where a infinite loop could be caused by a stray less-than sign in the input #1270 [Jamis Buck] git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@1297 5ecf4fe2-1ee6-0310-87b1-e25e094e27de --- actionpack/lib/action_controller/vendor/html-scanner/html/node.rb | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'actionpack/lib/action_controller/vendor/html-scanner/html/node.rb') diff --git a/actionpack/lib/action_controller/vendor/html-scanner/html/node.rb b/actionpack/lib/action_controller/vendor/html-scanner/html/node.rb index e6362655e8..edfc57d8b6 100644 --- a/actionpack/lib/action_controller/vendor/html-scanner/html/node.rb +++ b/actionpack/lib/action_controller/vendor/html-scanner/html/node.rb @@ -277,7 +277,10 @@ module HTML#:nodoc: "" else s = "<#{@name}" - @attributes.each { |k,v| s << " #{k}='#{v.to_s.gsub(/'/,"\\\\'")}'" } + @attributes.each do |k,v| + s << " #{k}" + s << "='#{v.gsub(/'/,"\\\\'")}'" if String === v + end s << " /" if @closing == :self s << ">" @children.each { |child| s << child.to_s } -- cgit v1.2.3