Message 309059 - Python tracker
For example:
a = []
for i in range(22):
a = [a, a]
b = plistlib.dumps(a, fmt=plistlib.FMT_BINARY)
The result is 130 bytes long on patched plistlib. But plistlib.dumps(b) will expand to a structure consuming almost a gigabyte of memory on unpatched plistlib. Increasing the level of nesting by one will duplicate memory consumption, so it is easy to consume all available memory on any computer.