Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2024-01-29 | Fix PLIST_API definitions | 1 | -1/+1 | ||
2023-05-21 | Add explicit casts and fix return type mismatches | 1 | -10/+12 | ||
2023-05-14 | bplist: Move realloc from parse_unicode_node() into plist_utf16be_to_utf8() | 1 | -11/+12 | ||
It is very confusing to handle the reallocation (buffer shrinking) outside of the actual conversion function. | |||||
2023-05-13 | Move PLIST_API to the headers | 1 | -2/+2 | ||
2023-04-21 | bplist: Fix offset range check | 1 | -1/+1 | ||
Credit to OSS-Fuzz | |||||
2023-02-07 | Fix build without --enable-debug | 1 | -0/+2 | ||
2023-02-07 | Add function to interface to allow enabling/disabling error/debug output for ↵ | 1 | -0/+5 | ||
the format parses This makes the `-d` option work in plistutil that wasn't doing anything | |||||
2023-02-06 | libcnary: Updated typedefs of node_t and node_list_t to contain pointer | 1 | -8/+8 | ||
This makes the code more readable. Obviously all the code that uses it is also updated. | |||||
2023-01-31 | bplist: Fix handling of PLIST_NULL node type | 1 | -0/+1 | ||
2023-01-16 | Rename PLIST_UINT to PLIST_INT and add plist_new_int() and plist_get_int_val() | 1 | -12/+12 | ||
This properly supports getting and setting signed or unsigned integer values. Also, a new helper function plist_int_val_is_negative() was added to determine if a given #PLIST_INT node has a negative value or not. The old type PLIST_UINT is defined as a macro with the value of PLIST_INT for backwards compatibility. This commit also adds int vs. uint support to the C++ interface, and the python bindings in a hopefully useful way. | |||||
2022-09-05 | Get rid of casting a ptr to a 32 bit value | 1 | -2/+2 | ||
This causes a warning if `-Wbad-function-cast` is enabled on a build. | |||||
2022-08-24 | bplist: Fix strict aliasing violations | 1 | -3/+9 | ||
Casting a float pointer to an int pointer is a strict aliasing violation (-Wstrict-aliasing) and is undefined behaviour (although, it did not seem to cause any real issues). An optimising compiler should elide the memcopies added by this commit. | |||||
2021-12-22 | Add a return value to plist_to_* and plist_from_* functions | 1 | -15/+45 | ||
This way it can be easier determined why an import/export operation failed instead of just having a NULL result. | |||||
2021-12-19 | Add support for PLIST_NULL type | 1 | -0/+12 | ||
2021-12-19 | Add new plist_mem_free() function | 1 | -5/+0 | ||
Thanks to @azerg for bringing this to my attention. Instead of having multiple (internally identical) plist_*_free() functions, this commit introduces a single plist_mem_free() that can be used to free the memory allocated by plist_to_xml(), plist_to_bin(), plist_get_key_val(), plist_get_string_val(), and plist_get_data_val(). Note: This commit REMOVES plist_to_bin_free() and plist_to_xml_free(). | |||||
2020-11-24 | Add parentheses to macros for better readability | 1 | -14/+14 | ||
[clang-tidy] Found with bugprone-macro-parentheses Signed-off-by: Rosen Penev <rosenp@gmail.com> | |||||
2020-11-21 | bplist: Fix offset table range check, don't rely on pointer overflow | 1 | -1/+1 | ||
2020-06-08 | Remove whitespace errors from all files | 1 | -1/+1 | ||
2020-06-03 | Remove pointless return in void functions | 1 | -2/+0 | ||
[clang-tidy] Found with readability-redundant-control-flow Signed-off-by: Rosen Penev <rosenp@gmail.com> | |||||
2020-05-14 | bplist: Prevent 32bit compiler warning | 1 | -1/+3 | ||
2020-05-11 | bplist: Remove unnecessary allocation and unused variables | 1 | -10/+5 | ||
2019-12-09 | bplist: Silence compiler warning | 1 | -2/+2 | ||
2019-12-09 | bplist: Add cast to/from uint32_t when reading/storing indices for recursion ↵ | 1 | -4/+4 | ||
check | |||||
2019-12-09 | bplist: use ptr_array instead of PLIST_ARRAY to store node indices for ↵ | 1 | -10/+10 | ||
recursing check This improves performance by at least 30% for large files, and also reduces the memory footprint. | |||||
2019-11-07 | Add plist_to_bin_free() and plist_to_xml_free() functions that free memory ↵ | 1 | -0/+5 | ||
allocated by plist_to_bin()/plist_to_xml() | |||||
2019-01-18 | bplist: Silence compiler warning 'comparison is always true ...' (32 bit) | 1 | -1/+1 | ||
2018-12-10 | Remove node_iterator and operate on node list directly to improve memory usage | 1 | -4/+1 | ||
2018-12-10 | bplist: Improve performance and memory usage when writing binary plist | 1 | -2/+84 | ||
2018-11-30 | bplist: Remove unnecessary allocations when parsing and writing unicode nodes | 1 | -88/+72 | ||
2018-11-29 | bplist: Remove redundant calls to strlen() | 1 | -7/+4 | ||
2017-05-31 | bplist: Prevent store to misaligned address when writing real/date nodes | 1 | -9/+9 | ||
ASAN reported possible undefined behaviour when writing float/double values to misaligned addresses. | |||||
2017-05-29 | bplist: Work around misaligned reads reported by AddressSanitizer | 1 | -3/+3 | ||
These misaligned reads reported by ASAN might lead to undefined behavior. | |||||
2017-04-20 | bplist: Fix missing break in switch statement in plist_to_bin() | 1 | -0/+1 | ||
Credit to Christophe Fergeau | |||||
2017-04-20 | bplist: Suppress compiler warnings with proper casts | 1 | -3/+3 | ||
2017-04-19 | bplist: Fix integer overflow check (offset table size) | 1 | -3/+17 | ||
2017-03-26 | bplist: Make sure sanity checks work on 32bit platforms | 1 | -10/+14 | ||
Because on 32-bit platforms 32-bit pointers and 64-bit sizes have been used for the sanity checks of the offset table and object references, the range checks would fail in certain interger-overflowish situations, causing heap buffer overflows or other unwanted behavior. Fixed by wideing the operands in question to 64-bit. | |||||
2017-02-10 | bplist: Fix data range check for string/data/dict/array nodes | 1 | -6/+6 | ||
Passing a size of 0xFFFFFFFFFFFFFFFF to parse_string_node() might result in a memcpy with a size of -1, leading to undefined behavior. This commit makes sure that the actual node data (which depends on the size) is in the range start_of_object..start_of_object+size. Credit to OSS-Fuzz | |||||
2017-02-10 | bplist: Fix integer overflow resulting in OOB heap buffer read | 1 | -0/+5 | ||
Credit to OSS-Fuzz | |||||
2017-02-09 | bplist: Make sure to detect integer overflow when handling unicode node size | 1 | -0/+4 | ||
Credit to OSS-Fuzz | |||||
2017-02-07 | bplist: Properly handle some more malloc() failure situations | 1 | -3/+18 | ||
2017-02-07 | bplist: Make sure to bail out if malloc() fails in parse_unicode_node() | 1 | -0/+5 | ||
Credit to OSS-Fuzz | |||||
2017-02-07 | bplist: Make sure to bail out if malloc() fails in parse_data_node() | 1 | -0/+5 | ||
Credit to OSS-Fuzz | |||||
2017-02-07 | bplist: Make sure to bail out if malloc() fails in parse_string_node() | 1 | -0/+5 | ||
Credit to Wang Junjie <zhunkibatu@gmail.com> (#93) | |||||
2017-02-06 | bplist: Plug memory leak in case parsing a dictionary key fails | 1 | -0/+1 | ||
2017-02-06 | bplist: Refine some debug/error messages in parse_dict_node() | 1 | -4/+4 | ||
2017-02-05 | bplist: Suppress compiler warnings about format specifiers in error messages | 1 | -8/+9 | ||
2017-02-05 | bplist: Add error/debug logging (only if configured with --enable-debug) | 1 | -31/+112 | ||
This commit adds proper debug/error messages being printed if the binary plist parser encounters anything abnormal. To enable debug logging, libplist must be configured with --enable-debug, and the environment variable PLIST_BIN_DEBUG must be set to "1". | |||||
2017-02-05 | bplist: Make sure node data is always before the offset table | 1 | -14/+14 | ||
2017-02-05 | bplist: Make sure the offset table is in the correct range | 1 | -4/+9 | ||
2017-02-05 | bplist: Make sure node index is smaller than number of objects | 1 | -1/+1 | ||