summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2023-02-05Fix plist_sort() by swapping the nodes in the tree instead of their dataGravatar Nikias Bassen1-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-03Add new plist_sort() functionGravatar Nikias Bassen2-0/+69
2023-02-03Add lowercase begin/end iterator functionsGravatar Daniel4-0/+48
... for Dictionary and Array
2023-02-03Add PList::Array iterator member functionsGravatar Daniel2-0/+27
... returning both iterators and const_iterators: * PList::Array::Begin() * PList::Array::End()
2023-01-31bplist: Fix handling of PLIST_NULL node typeGravatar Nikias Bassen2-0/+2
2023-01-31jplist: Fix handling of PLIST_NULL type when converting to JSONGravatar Nikias Bassen1-0/+3
2023-01-19xplist: Add missing newline to debug messageGravatar Nikias Bassen1-1/+1
2023-01-19jplist: Add missing newline to debug messageGravatar Nikias Bassen1-1/+1
2023-01-18oplist: Prevent too many levels of recursion to prevent stack overflowGravatar Nikias Bassen1-1/+9
Credit to OSS-Fuzz
2023-01-17oplist: Fix another OOB readGravatar Nikias Bassen2-0/+8
Credit to OSS-Fuzz
2023-01-16Updated README.md with CodeQL badgeGravatar Nikias Bassen1-0/+1
2023-01-16Rename PLIST_UINT to PLIST_INT and add plist_new_int() and plist_get_int_val()Gravatar Nikias Bassen17-62/+382
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-13oplist: Fix another OOB readGravatar Nikias Bassen2-0/+4
Credit to OSS-Fuzz
2023-01-11[github-actions] CodeQL: Update checkout to v3Gravatar Nikias Bassen1-1/+1
2023-01-11[github-actions] build: Update checkout and upload-artifact to v3Gravatar Nikias Bassen1-6/+6
2023-01-11oplist: Plug another memory leak occurring on parse errorGravatar Nikias Bassen2-0/+2
Credit to OSS-Fuzz
2023-01-11oplist: Plug some more memory leaks occuring when parsing failsGravatar Nikias Bassen1-4/+5
2023-01-09fuzz: Add OpenStep crash/leak testcases found by OSS-FuzzGravatar Nikias Bassen3-0/+8
2023-01-09oplist: Add more bound checks to prevent OOB readsGravatar Nikias Bassen1-2/+32
2023-01-09oplist: Fix OOB read by checking bounds properlyGravatar Nikias Bassen1-1/+6
Credit to OSS-Fuzz
2023-01-09oplist: Fix use-after-free by setting free'd pointer to NULLGravatar Nikias Bassen1-0/+1
Credit to OSS-Fuzz
2023-01-09oplist: Plug memory leaks occurring when parsing failsGravatar Nikias Bassen1-0/+7
2023-01-08Updated READMEGravatar Nikias Bassen1-7/+14
2023-01-08fuzz: Add OpenStep plist fuzzerGravatar Nikias Bassen6-3/+108
2023-01-08fuzz: Fix comment in jplist_fuzzer saying XMLGravatar Nikias Bassen1-2/+2
2023-01-08Add support for OpenStep plist formatGravatar Nikias Bassen18-45/+1322
2023-01-08fuzz: Add some more JSON test case from OSS-FuzzGravatar Nikias Bassen3-0/+66
2023-01-08JSON: Only allow to convert PLIST_DICT or PLIST_ARRAY node to JSONGravatar Nikias Bassen1-0/+8
2022-11-20[github-actions] Add CIFuzz integrationGravatar David Korczynski1-0/+26
Signed-off-by: David Korczynski <david@adalogics.com>
2022-11-02[github-actions] CodeQL: No need for scheduled run since it runs on every pushGravatar Nikias Bassen1-2/+0
2022-11-02jplist: Prevent multiplication overflow by casting to larger typeGravatar Nikias Bassen1-2/+2
Found by CodeQL
2022-09-05cython: Fix 2 warnings with `-Wbad-function-cast`Gravatar Nikias Bassen1-2/+4
2022-09-05jplist: Fix warning with `-Wbad-function-cast`Gravatar Nikias Bassen1-2/+2
2022-09-05Fix up warning with `-Wbad-function-cast`Gravatar Dave MacLachlan1-1/+4
2022-09-05Get rid of casting a ptr to a 32 bit valueGravatar Dave MacLachlan1-2/+2
This causes a warning if `-Wbad-function-cast` is enabled on a build.
2022-09-05[github-actions] Update CodeQL to v2Gravatar Nikias Bassen1-3/+3
2022-09-05Allow using libplist as a submoduleGravatar Nikias Bassen1-1/+1
2022-08-24bplist: Fix strict aliasing violationsGravatar Matthew Smith1-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-08-24[github-actions] Add a scheduled build every 1st of the month so we always ↵Gravatar Nikias Bassen1-1/+4
have an artifact
2022-04-06jplist: Escape characters [0x00..0x1F] when converting to JSONGravatar Nikias Bassen1-5/+12
2022-04-06Skip whitespace to properly detect format in plist_from_memory()Gravatar Nikias Bassen1-3/+8
2022-02-15jplist: Fix another OOB read by using correct bounds checkGravatar Nikias Bassen1-1/+1
Credit to OSS-Fuzz
2022-02-14[github-actions] Use windows-2019 instead of windows-latest for nowGravatar Nikias Bassen1-1/+1
Built is failing because of some python mess
2022-02-11jplist: Fix OOB read by using correct bounds checkGravatar Nikias Bassen1-1/+1
Credit to OSS-Fuzz
2022-02-10[github-actions] Windows: Prevent -dirty suffix in version string by ↵Gravatar Nikias Bassen2-0/+2
disabling CRLF conversion
2022-02-08jplist: Prevent read of uninitialized value by checking the bounds beforehandGravatar Nikias Bassen1-2/+2
Credit to OSS-Fuzz
2022-02-07cython: Fix Windows buildGravatar Nikias Bassen1-0/+4
2022-02-07docs: Fix parameter and type names for doxygenGravatar Nikias Bassen1-8/+11
2022-02-07cython: Fix for LibTool compilation and Python 3 libintlGravatar Rick Mark1-1/+1
On Python 3.9 `libpython` no longer is linkable as a static library due to the fact that `libpython` now depends on `libintl`. This would mean we would have to import `libintl` to create a fully linked .la It is better to be explicit that we are building a .so (really a .dylib but autotools uses linux file conventions) that doesn't have to be fully resolved.
2022-02-07test: Polish json3.test to not leave temp file after testGravatar Nikias Bassen1-3/+5