From: Martin v. Löwis Date: Fri, 23 May 2008 15:18:28 +0000 (+0000) Subject: Issue #1390: Raise ValueError in toxml when an invalid comment would X-Git-Tag: v2.6b1~283 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=27e4a179f277b568f04d482765ab773068ae6ab6;p=python Issue #1390: Raise ValueError in toxml when an invalid comment would otherwise be produced. --- diff --git a/Lib/test/test_minidom.py b/Lib/test/test_minidom.py index 97bca2c8a7..f1f137877e 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 ae960330c5..02e82d9037 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" % (indent, self.data, newl)) diff --git a/Misc/NEWS b/Misc/NEWS index 42d9f32937..c1f9555165 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -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.