diff options
| author | 2026-02-22 03:39:54 +0100 | |
|---|---|---|
| committer | 2026-02-22 03:39:54 +0100 | |
| commit | f5e74fc1e007b8f625d91e40c160785580de8f60 (patch) | |
| tree | ce9da2c80c13a0718605019c098e2a3b775b814a /plutil | |
| parent | 3bdee70a9c1490ea011c6fb65193b2c7e242d26d (diff) | |
| download | libplist-f5e74fc1e007b8f625d91e40c160785580de8f60.tar.gz libplist-f5e74fc1e007b8f625d91e40c160785580de8f60.tar.bz2 | |
xplist: Convert nested {CF$UID:<int>} dicts to PLIST_UID safely
Convert single-entry { "CF$UID" : <integer> } dictionaries to PLIST_UID
nodes when closing a dict in the XML parser.
Refactor node cleanup logic:
- Split plist_free_data() into internal _plist_free_data()
- Introduce plist_free_children() to release child nodes separately
- Update plist_set_element_val() to free children before changing
container node types
- Ensure PLIST_DICT hashtables do not free values (assert + force
free_func = NULL)
This avoids in-place container mutation issues and ensures child
nodes and container metadata are released correctly before
changing node type.
Co-authored-by: Sami Kortelainen <sami.kortelainen@piceasoft.com>
Co-authored-by: Nikias Bassen <nikias@gmx.li>
Diffstat (limited to 'plutil')
0 files changed, 0 insertions, 0 deletions
