| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| libplist-2.8.0.tar.bz2 | 2026-09-29 | 519.2 kB | |
| 2.8.0 source code.tar.gz | 2026-09-29 | 271.2 kB | |
| 2.8.0 source code.zip | 2026-09-29 | 389.8 kB | |
| README.md | 2026-09-29 | 2.5 kB | |
| Totals: 4 Items | 1.2 MB | 4 | |
2.8.0 (2026-09-30)
Changes
- Convert
plist_array_set_item,plist_array_append_item,plist_array_insert_item,plist_array_remove_item,plist_array_item_remove,plist_dict_set_item,plist_dict_remove_item, andplist_dict_mergefromvoidtoplist_err_treturn type so that memory allocation and other errors can be reported - Make
PLIST_ARRAYandPLIST_DICTiterators opaque; addplist_array_free_iterandplist_dict_free_iterto release them - Add JSON coercion support for non-JSON plist types
- Add OpenStep coercion support for non-OpenStep plist types
- Add circular reference detection to all format writers
- Prevent deep nesting of plist structures in all input/output formats
plistutil: Usegetoptfor solid option parsingplistutil: Add a--nodepathoption to allow selecting a specific nodeplistutil: ReadSTDINin chunks instead of one byte at a timeplistutil: preserve binary data on Windows standard streams- Add
NULLchecks and error handling across the codebase (node_attach/node_insertfailures,realloc()failures inbyte_array_grow()/ptr_array_insert(), etc.) - Make plist copy and free implementations iterative to avoid stack overflow on deeply nested structures
- docs: Add OpenStep to man page
Bugfixes
- Fix heap overflow caused by incorrect
PLIST_STRINGlength during copy - Fix UTF-8 to UTF-16 decoding and enforce strict validation in
bplist - Fix inverted
strcmpin string to boolean conversion - Fix incorrect size storage in
plist_copy()forPLIST_STRINGnodes - Fix
is_ascii_stringby using a sufficiently large data type - Fix
bplistoffset table range check and add overflow check to node offset pointer arithmetic - Reject insertion of plist nodes that already have a parent
xplist: Enforce single root value inside<plist>xplist: Convert nested{CF$UID:<int>}dicts toPLIST_UIDsafelyxplist: Harden entity unescaping against malformed input and improve robustness of XML text parsing and value conversion- Fix
plist_is_binary()not checking forNULLinput - Fix a few memory leaks in JSON parsing and
libcnary'snode_copy_deep() - Fix Cython crashes
- Fix
fread()unused return values by actually handling errors - Fix
Integerconstructor to copy plist node (C++ bindings) - Various smaller compiler warning and portability fixes (MSVC
ssize_t, format specifiers, WIN32time_ssupport)