summaryrefslogtreecommitdiffstats
path: root/test/data/1.plist
diff options
context:
space:
mode:
authorGravatar Nikias Bassen2026-11-05 10:07:22 +0100
committerGravatar Nikias Bassen2026-11-05 10:07:22 +0100
commit2b3cc554270d34ca1e1fae3eb2cbbc740a65bbf3 (patch)
tree26648136f289451bddef614b124a168cb6b9669a /test/data/1.plist
parent51f471432715f7a1880d38c135ce41182b4dc78e (diff)
downloadlibplist-2b3cc554270d34ca1e1fae3eb2cbbc740a65bbf3.tar.gz
libplist-2b3cc554270d34ca1e1fae3eb2cbbc740a65bbf3.tar.bz2
bplist: limit total parsed nodes to prevent memory exhaustion
Binary plist objects may be referenced multiple times, and each reference is parsed into a separate node. A tiny crafted input where arrays reference the same objects repeatedly (without forming a cycle, so the recursion check does not trigger) expands into millions of nodes and exhausts memory. Track the number of nodes parsed and fail with PLIST_ERR_PARSE once it exceeds num_objects * 16 + 65536. Legitimate files create roughly as many nodes as they have objects, so they stay well below this limit. Credit to OSSFuzz
Diffstat (limited to 'test/data/1.plist')
0 files changed, 0 insertions, 0 deletions