Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2024-01-29 | Fix PLIST_API definitions | Nikias Bassen | 1 | -1/+1 | |
2023-05-21 | Add explicit casts and fix return type mismatches | Nikias Bassen | 1 | -10/+12 | |
2023-05-14 | bplist: Move realloc from parse_unicode_node() into plist_utf16be_to_utf8() | Nikias Bassen | 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 | Nikias Bassen | 1 | -2/+2 | |
2023-04-21 | bplist: Fix offset range check | Nikias Bassen | 1 | -1/+1 | |
Credit to OSS-Fuzz | |||||
2023-02-07 | Fix build without --enable-debug | Nikias Bassen | 1 | -0/+2 | |
2023-02-07 | Add function to interface to allow enabling/disabling error/debug output for ↵ | Nikias Bassen | 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 | Nikias Bassen | 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 | Nikias Bassen | 1 | -0/+1 | |
2023-01-16 | Rename PLIST_UINT to PLIST_INT and add plist_new_int() and plist_get_int_val() | Nikias Bassen | 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 | Dave MacLachlan | 1 | -2/+2 | |
This causes a warning if `-Wbad-function-cast` is enabled on a build. | |||||
2022-08-24 | bplist: Fix strict aliasing violations | Matthew Smith | 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 | Nikias Bassen | 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 | Nikias Bassen | 1 | -0/+12 | |
2021-12-19 | Add new plist_mem_free() function | Nikias Bassen | 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 | Rosen Penev | 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 | Nikias Bassen | 1 | -1/+1 | |
2020-06-08 | Remove whitespace errors from all files | Martin Szulecki | 1 | -1/+1 | |
2020-06-03 | Remove pointless return in void functions | Rosen Penev | 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 | Nikias Bassen | 1 | -1/+3 | |
2020-05-11 | bplist: Remove unnecessary allocation and unused variables | Nikias Bassen | 1 | -10/+5 | |
2019-12-09 | bplist: Silence compiler warning | Nikias Bassen | 1 | -2/+2 | |
2019-12-09 | bplist: Add cast to/from uint32_t when reading/storing indices for recursion ↵ | Nikias Bassen | 1 | -4/+4 | |
check | |||||
2019-12-09 | bplist: use ptr_array instead of PLIST_ARRAY to store node indices for ↵ | XD | 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 ↵ | Nikias Bassen | 1 | -0/+5 | |
allocated by plist_to_bin()/plist_to_xml() | |||||
2019-01-18 | bplist: Silence compiler warning 'comparison is always true ...' (32 bit) | Nikias Bassen | 1 | -1/+1 | |
2018-12-10 | Remove node_iterator and operate on node list directly to improve memory usage | Nikias Bassen | 1 | -4/+1 | |
2018-12-10 | bplist: Improve performance and memory usage when writing binary plist | Nikias Bassen | 1 | -2/+84 | |
2018-11-30 | bplist: Remove unnecessary allocations when parsing and writing unicode nodes | Nikias Bassen | 1 | -88/+72 | |
2018-11-29 | bplist: Remove redundant calls to strlen() | Nikias Bassen | 1 | -7/+4 | |
2017-05-31 | bplist: Prevent store to misaligned address when writing real/date nodes | Nikias Bassen | 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 | Nikias Bassen | 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() | Nikias Bassen | 1 | -0/+1 | |
Credit to Christophe Fergeau | |||||
2017-04-20 | bplist: Suppress compiler warnings with proper casts | Nikias Bassen | 1 | -3/+3 | |
2017-04-19 | bplist: Fix integer overflow check (offset table size) | Nikias Bassen | 1 | -3/+17 | |
2017-03-26 | bplist: Make sure sanity checks work on 32bit platforms | Nikias Bassen | 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 | Nikias Bassen | 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 | Nikias Bassen | 1 | -0/+5 | |
Credit to OSS-Fuzz | |||||
2017-02-09 | bplist: Make sure to detect integer overflow when handling unicode node size | Nikias Bassen | 1 | -0/+4 | |
Credit to OSS-Fuzz | |||||
2017-02-07 | bplist: Properly handle some more malloc() failure situations | Nikias Bassen | 1 | -3/+18 | |
2017-02-07 | bplist: Make sure to bail out if malloc() fails in parse_unicode_node() | Nikias Bassen | 1 | -0/+5 | |
Credit to OSS-Fuzz | |||||
2017-02-07 | bplist: Make sure to bail out if malloc() fails in parse_data_node() | Nikias Bassen | 1 | -0/+5 | |
Credit to OSS-Fuzz | |||||
2017-02-07 | bplist: Make sure to bail out if malloc() fails in parse_string_node() | Nikias Bassen | 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 | Nikias Bassen | 1 | -0/+1 | |
2017-02-06 | bplist: Refine some debug/error messages in parse_dict_node() | Nikias Bassen | 1 | -4/+4 | |
2017-02-05 | bplist: Suppress compiler warnings about format specifiers in error messages | Nikias Bassen | 1 | -8/+9 | |
2017-02-05 | bplist: Add error/debug logging (only if configured with --enable-debug) | Nikias Bassen | 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 | Nikias Bassen | 1 | -14/+14 | |
2017-02-05 | bplist: Make sure the offset table is in the correct range | Nikias Bassen | 1 | -4/+9 | |
2017-02-05 | bplist: Make sure node index is smaller than number of objects | Nikias Bassen | 1 | -1/+1 | |