summaryrefslogtreecommitdiffstats
path: root/src/ptrarray.c
AgeCommit message (Collapse)AuthorFilesLines
10 hoursHarden allocation failure handling and size arithmeticGravatar Nikias Bassen1-3/+21
- check malloc/calloc/realloc results in constructors, the JSON and OpenStep writers, the XML text-part helpers and base64 decoding, and return PLIST_ERR_NO_MEM instead of asserting or dereferencing NULL - guard size calculations against overflow in the UTF-8/UTF-16BE conversions, ptrarray, and bytearray - make hash_table_insert() report failure instead of silently dropping the entry; writers propagate PLIST_ERR_NO_MEM, and dict lookup caches are discarded so lookups fall back to a linear search - don't overwrite an earlier parse error code in the XML parser, and report PLIST_ERR_NO_MEM when reading text content fails for lack of memory - OpenStep parser: check node/data/string allocations and dict/array insertion results Based on #323 by bg0d-droid. Co-authored-by: bg0d-droid <81825610+bg0d-droid@users.noreply.github.com>
2026-09-27ptrarray: Handle realloc() failure in ptr_array_insert()Gravatar Comtea041-5/+10
ptr_array_insert() assigned the result of realloc() directly to pa->pdata and bumped the capacity without checking for failure, so on out-of-memory the old buffer was leaked and the following store or memmove() wrote through a NULL pointer. Keep the old buffer on failure and return -1 from ptr_array_insert() and ptr_array_add(). The callers now handle the error: - the array lookup cache (plist.c) is dropped instead of silently going out of sync with the node list; lookups then fall back to walking the children, as they do before the cache exists - bplist parsing (used_indexes) and serialization (objects) return PLIST_ERR_NO_MEM; ignoring the error in parse_bin_node_at_index() would otherwise loop forever since the array never grows Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2023-05-21Add explicit casts and fix return type mismatchesGravatar Nikias Bassen1-1/+1
2019-12-09ptrarray: Add function returning the size (number of elements) of the arrayGravatar XD1-1/+6
2019-05-19Add index lookup table for large PLIST_ARRAY nodesGravatar Nikias Bassen1-6/+36
2018-12-10ptrarray: Allow larger chunks for buffer reallocationGravatar Nikias Bassen1-1/+1
2014-05-20Rename "index" variable as it shadows global declaration on older systemsGravatar Martin Szulecki1-3/+3
2011-05-27Make libplist glib freeGravatar Nikias Bassen1-0/+61