diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/rexml/parsers/baseparser.rb | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/lib/rexml/parsers/baseparser.rb b/lib/rexml/parsers/baseparser.rb index 39e9ec3fb1..f76aed0787 100644 --- a/lib/rexml/parsers/baseparser.rb +++ b/lib/rexml/parsers/baseparser.rb @@ -335,6 +335,10 @@ module REXML @nsstack.shift last_tag = @tags.pop md = @source.match( CLOSE_MATCH, true ) + if md and !last_tag + message = "Unexpected top-level end tag (got '#{md[1]}')" + raise REXML::ParseException.new(message, @source) + end if md.nil? or last_tag != md[1] message = "Missing end tag for '#{last_tag}'" message << " (got '#{md[1]}')" if md |