summaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* bplist: Move realloc from parse_unicode_node() into plist_utf16be_to_utf8()HEADmasterNikias Bassen2023-05-141-11/+12
| | | | | It is very confusing to handle the reallocation (buffer shrinking) outside of the actual conversion function.
* Make sure function signatures match their declarations in the public headerNikias Bassen2023-05-142-7/+7
|
* Windows: Use winsock2.h instead of sys/time.h when using MSVCNikias Bassen2023-05-131-1/+3
|
* Add space before PRI* macros, some compilers do not like itNikias Bassen2023-05-136-18/+18
|
* Move PLIST_API to the headersNikias Bassen2023-05-136-101/+91
|
* Silence another false 'shadows builtin function' warning on MinGWNikias Bassen2023-05-071-0/+3
|
* Silence false 'shadows builtin function' warning on MinGWNikias Bassen2023-05-071-0/+3
|
* Silence more compiler warning on 32bit systemsNikias Bassen2023-05-071-22/+22
|
* Silence compiler warning on 32bit systemsNikias Bassen2023-05-051-1/+1
|
* Remove unnecessary const to silence compiler warningNikias Bassen2023-04-212-2/+2
|
* C++: Remove deprecated Insert()Nikias Bassen2023-04-211-5/+0
|
* C++: Add dictionary and array size methodNikias Bassen2023-04-212-0/+8
| | | | Thanks @Cryptiiiic for the contribution.
* bplist: Fix offset range checkNikias Bassen2023-04-211-1/+1
| | | | Credit to OSS-Fuzz
* Remove deprecated plist_dict_insert_item()Nikias Bassen2023-04-191-5/+0
|
* Add plist_read_from_file() to interface, update plist_from_memory()Nikias Bassen2023-04-191-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).
* Add new output-only formats and Define constants for the different plist formatsNikias Bassen2023-04-169-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.
* Fix build without --enable-debugNikias Bassen2023-02-074-0/+8
|
* Add function to interface to allow enabling/disabling error/debug output for ↵Nikias Bassen2023-02-075-0/+33
| | | | | | the format parses This makes the `-d` option work in plistutil that wasn't doing anything
* libcnary: Updated typedefs of node_t and node_list_t to contain pointerNikias Bassen2023-02-065-67/+64
| | | | | This makes the code more readable. Obviously all the code that uses it is also updated.
* Fix plist_sort() by swapping the nodes in the tree instead of their dataNikias Bassen2023-02-051-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.
* Add new plist_sort() functionNikias Bassen2023-02-031-0/+61
|
* Add lowercase begin/end iterator functionsDaniel2023-02-032-0/+40
| | | ... for Dictionary and Array
* Add PList::Array iterator member functionsDaniel2023-02-031-0/+20
| | | | | ... returning both iterators and const_iterators: * PList::Array::Begin() * PList::Array::End()
* bplist: Fix handling of PLIST_NULL node typeNikias Bassen2023-01-312-0/+2
|
* jplist: Fix handling of PLIST_NULL type when converting to JSONNikias Bassen2023-01-311-0/+3
|
* xplist: Add missing newline to debug messageNikias Bassen2023-01-191-1/+1
|
* jplist: Add missing newline to debug messageNikias Bassen2023-01-191-1/+1
|
* oplist: Prevent too many levels of recursion to prevent stack overflowNikias Bassen2023-01-181-1/+9
| | | | Credit to OSS-Fuzz
* oplist: Fix another OOB readNikias Bassen2023-01-171-0/+7
| | | | Credit to OSS-Fuzz
* Rename PLIST_UINT to PLIST_INT and add plist_new_int() and plist_get_int_val()Nikias Bassen2023-01-1610-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.
* oplist: Fix another OOB readNikias Bassen2023-01-131-0/+3
| | | | Credit to OSS-Fuzz
* oplist: Plug another memory leak occurring on parse errorNikias Bassen2023-01-111-0/+1
| | | | Credit to OSS-Fuzz
* oplist: Plug some more memory leaks occuring when parsing failsNikias Bassen2023-01-111-4/+5
|
* oplist: Add more bound checks to prevent OOB readsNikias Bassen2023-01-091-2/+32
|
* oplist: Fix OOB read by checking bounds properlyNikias Bassen2023-01-091-1/+6
| | | | Credit to OSS-Fuzz
* oplist: Fix use-after-free by setting free'd pointer to NULLNikias Bassen2023-01-091-0/+1
| | | | Credit to OSS-Fuzz
* oplist: Plug memory leaks occurring when parsing failsNikias Bassen2023-01-091-0/+7
|
* Add support for OpenStep plist formatNikias Bassen2023-01-083-5/+911
|
* JSON: Only allow to convert PLIST_DICT or PLIST_ARRAY node to JSONNikias Bassen2023-01-081-0/+8
|
* jplist: Prevent multiplication overflow by casting to larger typeNikias Bassen2022-11-021-2/+2
| | | | Found by CodeQL
* jplist: Fix warning with `-Wbad-function-cast`Nikias Bassen2022-09-051-2/+2
|
* Fix up warning with `-Wbad-function-cast`Dave MacLachlan2022-09-051-1/+4
|
* Get rid of casting a ptr to a 32 bit valueDave MacLachlan2022-09-051-2/+2
| | | | This causes a warning if `-Wbad-function-cast` is enabled on a build.
* bplist: Fix strict aliasing violationsMatthew Smith2022-08-241-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.
* jplist: Escape characters [0x00..0x1F] when converting to JSONNikias Bassen2022-04-061-5/+12
|
* Skip whitespace to properly detect format in plist_from_memory()Nikias Bassen2022-04-061-3/+8
|
* jplist: Fix another OOB read by using correct bounds checkNikias Bassen2022-02-151-1/+1
| | | | Credit to OSS-Fuzz
* jplist: Fix OOB read by using correct bounds checkNikias Bassen2022-02-111-1/+1
| | | | Credit to OSS-Fuzz
* jplist: Prevent read of uninitialized value by checking the bounds beforehandNikias Bassen2022-02-081-2/+2
| | | | Credit to OSS-Fuzz
* xplist: Prevent undefined behavior by not trying to negate INT64_MINNikias Bassen2022-02-071-1/+1
|