summaryrefslogtreecommitdiffstats
path: root/Lib/plistlib.py
diff options
context:
space:
mode:
authorRonald Oussoren <ronaldoussoren@mac.com>2013-04-23 11:47:22 (GMT)
committerRonald Oussoren <ronaldoussoren@mac.com>2013-04-23 11:47:22 (GMT)
commit326edfde560410c8e92545e301722161b657db30 (patch)
tree907d2343844701c9a1523785044e52126921d19e /Lib/plistlib.py
parentd638381ee0f62dd5df85de1fbdc93cb665347eae (diff)
downloadcpython-326edfde560410c8e92545e301722161b657db30.zip
cpython-326edfde560410c8e92545e301722161b657db30.tar.gz
cpython-326edfde560410c8e92545e301722161b657db30.tar.bz2
Ensure that plistlib doesn't corrupt deeply nested datastructures
Without this changeset plistlib would write empty tags for plistlib.Data objects in deeply nested datastructures. Fixes #17353
Diffstat (limited to 'Lib/plistlib.py')
-rw-r--r--Lib/plistlib.py4
1 files changed, 2 insertions, 2 deletions
diff --git a/Lib/plistlib.py b/Lib/plistlib.py
index 41fd8f2..2b0b634 100644
--- a/Lib/plistlib.py
+++ b/Lib/plistlib.py
@@ -228,8 +228,8 @@ class PlistWriter(DumbXMLWriter):
def writeData(self, data):
self.beginElement("data")
self.indentLevel -= 1
- maxlinelength = 76 - len(self.indent.replace(b"\t", b" " * 8) *
- self.indentLevel)
+ maxlinelength = max(16, 76 - len(self.indent.replace(b"\t", b" " * 8) *
+ self.indentLevel))
for line in data.asBase64(maxlinelength).split(b"\n"):
if line:
self.writeln(line)