diff options
-rw-r--r-- | Lib/test/test_minidom.py | 5 | ||||
-rw-r--r-- | Lib/xml/dom/minidom.py | 2 | ||||
-rw-r--r-- | Misc/NEWS | 3 |
3 files changed, 10 insertions, 0 deletions
diff --git a/Lib/test/test_minidom.py b/Lib/test/test_minidom.py index 97bca2c..f1f1378 100644 --- a/Lib/test/test_minidom.py +++ b/Lib/test/test_minidom.py @@ -1314,6 +1314,11 @@ class MinidomTest(unittest.TestCase): for i in range(len(n1.childNodes)): stack.append((n1.childNodes[i], n2.childNodes[i])) + def testSerializeCommentNodeWithDoubleHyphen(self): + doc = create_doc_without_doctype() + doc.appendChild(doc.createComment("foo--bar")) + self.assertRaises(ValueError, doc.toxml) + def test_main(): run_unittest(MinidomTest) diff --git a/Lib/xml/dom/minidom.py b/Lib/xml/dom/minidom.py index ae96033..02e82d9 100644 --- a/Lib/xml/dom/minidom.py +++ b/Lib/xml/dom/minidom.py @@ -1128,6 +1128,8 @@ class Comment(Childless, CharacterData): self.data = self.nodeValue = data def writexml(self, writer, indent="", addindent="", newl=""): + if "--" in self.data: + raise ValueError("'--' is not allowed in a comment node") writer.write("%s<!--%s-->%s" % (indent, self.data, newl)) @@ -59,6 +59,9 @@ Extension Modules Library ------- +- Issue #1390: Raise ValueError in toxml when an invalid comment would + otherwise be produced. + - Issue #2914: TimedRotatingFileHandler now takes an optional keyword argument "utc" to use UTC time rather than local time. |