Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2023-12-12 | Prevent OOB access in plist_from_memory | Nikias Bassen | 1 | -2/+14 | |
Credit to OSS-Fuzz | |||||
2023-08-30 | Prevent adding NULL items to array/dictionary nodes | Nikias Bassen | 1 | -0/+12 | |
Thanks to @tihmstar for pointing this out! | |||||
2023-06-15 | Plug memory leak in plist_write_to_stream() | Nikias Bassen | 1 | -0/+1 | |
Thanks @beyonik for pointing this out! | |||||
2023-05-21 | Add explicit casts and fix return type mismatches | Nikias Bassen | 10 | -146/+152 | |
2023-05-20 | Add an explicit PLIST_FORMAT_NONE value | Nikias Bassen | 1 | -2/+2 | |
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-14 | Make sure function signatures match their declarations in the public header | Nikias Bassen | 2 | -7/+7 | |
2023-05-13 | Windows: Use winsock2.h instead of sys/time.h when using MSVC | Nikias Bassen | 1 | -1/+3 | |
2023-05-13 | Add space before PRI* macros, some compilers do not like it | Nikias Bassen | 6 | -18/+18 | |
2023-05-13 | Move PLIST_API to the headers | Nikias Bassen | 6 | -101/+91 | |
2023-05-07 | Silence another false 'shadows builtin function' warning on MinGW | Nikias Bassen | 1 | -0/+3 | |
2023-05-07 | Silence false 'shadows builtin function' warning on MinGW | Nikias Bassen | 1 | -0/+3 | |
2023-05-07 | Silence more compiler warning on 32bit systems | Nikias Bassen | 1 | -22/+22 | |
2023-05-05 | Silence compiler warning on 32bit systems | Nikias Bassen | 1 | -1/+1 | |
2023-04-21 | Remove unnecessary const to silence compiler warning | Nikias Bassen | 2 | -2/+2 | |
2023-04-21 | C++: Remove deprecated Insert() | Nikias Bassen | 1 | -5/+0 | |
2023-04-21 | C++: Add dictionary and array size method | Nikias Bassen | 2 | -0/+8 | |
Thanks @Cryptiiiic for the contribution. | |||||
2023-04-21 | bplist: Fix offset range check | Nikias Bassen | 1 | -1/+1 | |
Credit to OSS-Fuzz | |||||
2023-04-19 | Remove deprecated plist_dict_insert_item() | Nikias Bassen | 1 | -5/+0 | |
2023-04-19 | Add plist_read_from_file() to interface, update plist_from_memory() | Nikias Bassen | 1 | -1/+51 | |
plist_read_from_file() is a convenience function that will open a given file, checks its size, allocates a buffer large enough to hold the full contents, and reads from file to fill the buffer. Then, it calls plist_from_memory() to convert the data to plist format. A (breaking) change had to be made so that plist_from_memory() will also return the parsed format in its 4th argument (if non-NULL). | |||||
2023-04-16 | Add new output-only formats and Define constants for the different plist formats | Nikias Bassen | 9 | -6/+1538 | |
This commit introduces constants for the different plist formats, and adds 3 new human-readable output-only formats: - PLIST_FORMAT_PRINT: the default human-readable format - PLIST_FORMAT_LIMD: "libimobiledevice" format (used in ideviceinfo) - PLIST_FORMAT_PLUTIL: plutil-style format Also, a new set of write functions has been added: - plist_write_to_string - plist_write_to_stream - plist_write_to_file Plus a simple "dump" function: - plist_print See documentation for details. | |||||
2023-02-07 | Fix build without --enable-debug | Nikias Bassen | 4 | -0/+8 | |
2023-02-07 | Add function to interface to allow enabling/disabling error/debug output for ↵ | Nikias Bassen | 5 | -0/+33 | |
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 | 5 | -67/+64 | |
This makes the code more readable. Obviously all the code that uses it is also updated. | |||||
2023-02-05 | Fix plist_sort() by swapping the nodes in the tree instead of their data | Nikias Bassen | 1 | -29/+33 | |
The problem was that we swapped potential child node data between nodes, but their parents would not be updated that way, leading to double frees or segmentation faults when freeing a plist. This commit instead fixes this by swapping the actual nodes in the tree. | |||||
2023-02-03 | Add new plist_sort() function | Nikias Bassen | 1 | -0/+61 | |
2023-02-03 | Add lowercase begin/end iterator functions | Daniel | 2 | -0/+40 | |
... for Dictionary and Array | |||||
2023-02-03 | Add PList::Array iterator member functions | Daniel | 1 | -0/+20 | |
... returning both iterators and const_iterators: * PList::Array::Begin() * PList::Array::End() | |||||
2023-01-31 | bplist: Fix handling of PLIST_NULL node type | Nikias Bassen | 2 | -0/+2 | |
2023-01-31 | jplist: Fix handling of PLIST_NULL type when converting to JSON | Nikias Bassen | 1 | -0/+3 | |
2023-01-19 | xplist: Add missing newline to debug message | Nikias Bassen | 1 | -1/+1 | |
2023-01-19 | jplist: Add missing newline to debug message | Nikias Bassen | 1 | -1/+1 | |
2023-01-18 | oplist: Prevent too many levels of recursion to prevent stack overflow | Nikias Bassen | 1 | -1/+9 | |
Credit to OSS-Fuzz | |||||
2023-01-17 | oplist: Fix another OOB read | Nikias Bassen | 1 | -0/+7 | |
Credit to OSS-Fuzz | |||||
2023-01-16 | Rename PLIST_UINT to PLIST_INT and add plist_new_int() and plist_get_int_val() | Nikias Bassen | 10 | -38/+121 | |
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. | |||||
2023-01-13 | oplist: Fix another OOB read | Nikias Bassen | 1 | -0/+3 | |
Credit to OSS-Fuzz | |||||
2023-01-11 | oplist: Plug another memory leak occurring on parse error | Nikias Bassen | 1 | -0/+1 | |
Credit to OSS-Fuzz | |||||
2023-01-11 | oplist: Plug some more memory leaks occuring when parsing fails | Nikias Bassen | 1 | -4/+5 | |
2023-01-09 | oplist: Add more bound checks to prevent OOB reads | Nikias Bassen | 1 | -2/+32 | |
2023-01-09 | oplist: Fix OOB read by checking bounds properly | Nikias Bassen | 1 | -1/+6 | |
Credit to OSS-Fuzz | |||||
2023-01-09 | oplist: Fix use-after-free by setting free'd pointer to NULL | Nikias Bassen | 1 | -0/+1 | |
Credit to OSS-Fuzz | |||||
2023-01-09 | oplist: Plug memory leaks occurring when parsing fails | Nikias Bassen | 1 | -0/+7 | |
2023-01-08 | Add support for OpenStep plist format | Nikias Bassen | 3 | -5/+911 | |
2023-01-08 | JSON: Only allow to convert PLIST_DICT or PLIST_ARRAY node to JSON | Nikias Bassen | 1 | -0/+8 | |
2022-11-02 | jplist: Prevent multiplication overflow by casting to larger type | Nikias Bassen | 1 | -2/+2 | |
Found by CodeQL | |||||
2022-09-05 | jplist: Fix warning with `-Wbad-function-cast` | Nikias Bassen | 1 | -2/+2 | |
2022-09-05 | Fix up warning with `-Wbad-function-cast` | Dave MacLachlan | 1 | -1/+4 | |
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. | |||||
2022-04-06 | jplist: Escape characters [0x00..0x1F] when converting to JSON | Nikias Bassen | 1 | -5/+12 | |