summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Lib/test/test_minidom.py5
-rw-r--r--Lib/xml/dom/minidom.py2
-rw-r--r--Misc/NEWS3
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))
diff --git a/Misc/NEWS b/Misc/NEWS
index 42d9f32..c1f9555 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.