diff options
| author | Victor Stinner <victor.stinner@haypocalc.com> | 2010-05-24 21:46:25 +0000 |
|---|---|---|
| committer | Victor Stinner <victor.stinner@haypocalc.com> | 2010-05-24 21:46:25 +0000 |
| commit | e021f4b20622d272349ce9d05b9b1b4f5d183f8a (patch) | |
| tree | c38224942f93960f2d51633e40fb34a3e0549441 /Lib | |
| parent | ec883dba86b2e4109db0db20b9658251c918fc78 (diff) | |
| download | cpython-git-e021f4b20622d272349ce9d05b9b1b4f5d183f8a.tar.gz | |
Recorded merge of revisions 81500-81501 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r81500 | victor.stinner | 2010-05-24 23:33:24 +0200 (lun., 24 mai 2010) | 2 lines
Issue #6662: Fix parsing of malformatted charref (&#bad;)
........
r81501 | victor.stinner | 2010-05-24 23:37:28 +0200 (lun., 24 mai 2010) | 2 lines
Add the author of the last fix (Issue #6662)
........
Diffstat (limited to 'Lib')
| -rw-r--r-- | Lib/html/parser.py | 3 | ||||
| -rw-r--r-- | Lib/test/test_htmlparser.py | 7 |
2 files changed, 10 insertions, 0 deletions
diff --git a/Lib/html/parser.py b/Lib/html/parser.py index 83a58258c7..c2c7f6bf5d 100644 --- a/Lib/html/parser.py +++ b/Lib/html/parser.py @@ -175,6 +175,9 @@ class HTMLParser(_markupbase.ParserBase): i = self.updatepos(i, k) continue else: + if ";" in rawdata[i:]: #bail by consuming &# + self.handle_data(rawdata[0:2]) + i = self.updatepos(i, 2) break elif startswith('&', i): match = entityref.match(rawdata, i) diff --git a/Lib/test/test_htmlparser.py b/Lib/test/test_htmlparser.py index dd74aac09b..e982218dba 100644 --- a/Lib/test/test_htmlparser.py +++ b/Lib/test/test_htmlparser.py @@ -136,6 +136,13 @@ text ("data", "\n"), ]) + def test_malformatted_charref(self): + self._run_check("<p>&#bad;</p>", [ + ("starttag", "p", []), + ("data", "&#bad;"), + ("endtag", "p"), + ]) + def test_unclosed_entityref(self): self._run_check("&entityref foo", [ ("entityref", "entityref"), |
