Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2022-01-31 | test: Update JSON test case to have negative numbers | 1 | -1/+1 | ||
2022-01-31 | jplist: Fix OOB read in parse_primitive caused by missing 0-termination | 1 | -2/+8 | ||
In parse_primitive, integer and double values are parsed by using strtoll and atof, which both expect the string to be 0-terminated. While this is not a problem in well-formed JSON files, it can be if the JSON data is not, possibly leading to a crash due to OOB memory access. This commit fixes it by copying the value data in question to a stack buffer and 0-terminate it, and use that buffer instead. Credit to OSS-Fuzz | |||||
2022-01-31 | fuzz: Add another JSON test case from OSS-Fuzz | 1 | -0/+1 | ||
2022-01-31 | jplist: Fix OOB read by making sure the JSMN token index is in valid range | 1 | -31/+48 | ||
Credit to OSS-Fuzz | |||||
2022-01-28 | fuzz: Add JSON crash/leak test cases from OSS-Fuzz | 3 | -0/+3 | ||
2022-01-28 | jplist: Fix a few memory leaks that occur when parsing fails | 1 | -0/+5 | ||
Credit to OSS-Fuzz | |||||
2022-01-28 | jplist: Fix NULL pointer dereference by handling errors from unescape_string ↵ | 1 | -0/+6 | ||
correctly Credit to OSS-Fuzz | |||||
2022-01-28 | jplist: Fix use-after-free in unescape_string | 1 | -2/+2 | ||
Credit to OSS-Fuzz | |||||
2022-01-26 | [github-actions] Also checkout all tags for codeql | 1 | -1/+1 | ||
2022-01-26 | [github-actions] Make sure to fetch all tags on checkout | 1 | -0/+6 | ||
2022-01-25 | jplist: Make sure the jsmn parser tokens are initialized properly | 1 | -3/+6 | ||
2022-01-25 | test: Rename json test files to .json | 5 | -3/+4 | ||
2022-01-25 | configure: Fix clang detection when configuring --with-fuzzers | 1 | -2/+7 | ||
2022-01-25 | fuzz: Add fuzzer for JSON format | 6 | -4/+110 | ||
2022-01-25 | autoconf: Automatically derive version number from latest git tag | 3 | -2/+26 | ||
2022-01-25 | test: Add additional JSON test case | 4 | -7/+28 | ||
2022-01-25 | jplist: Make sure key values are also unescaped | 1 | -12/+19 | ||
2021-12-24 | json: Update parser (jsmn) to verify the length of the input data | 3 | -7/+17 | ||
This way the string doesn't have to be 0-terminated. | |||||
2021-12-23 | test: Work around JSON parser limitation expecting to have a 0-terminated ↵ | 1 | -0/+3 | ||
string as input | |||||
2021-12-23 | test: Update json test case to not rely on --enable-debug | 1 | -9/+6 | ||
2021-12-23 | plistutil: Check return values from plist API to print proper error messages | 1 | -14/+35 | ||
and return a meaningful exit code. | |||||
2021-12-23 | jplist: Make strndup argument const to silence compiler warning | 1 | -1/+1 | ||
2021-12-23 | [github-actions] Fix test suite failing due to missing debug output | 1 | -3/+3 | ||
2021-12-23 | jplist: Fix build on Windows | 1 | -0/+12 | ||
2021-12-23 | Add support for JSON format | 20 | -66/+1403 | ||
2021-12-23 | test: Add PLIST_UID test case | 4 | -3/+155 | ||
2021-12-23 | xplist: Add special handling for PLIST_UID parsing from XML | 1 | -5/+14 | ||
In XML, PLIST_UID nodes are stored as a dict with a "CF$UID" key and an integer value, so we want to make it a real PLIST_UID node internally. | |||||
2021-12-22 | Add a return value to plist_to_* and plist_from_* functions | 4 | -43/+120 | ||
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 | 4 | -15/+60 | ||
2021-12-19 | Fix 'make docs' target deleting the whole docs subdir | 1 | -1/+1 | ||
2021-12-19 | Add new plist_mem_free() function | 4 | -24/+28 | ||
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(). | |||||
2021-11-08 | xplist: Better size estimation for PLIST_REAL nodes | 1 | -2/+2 | ||
2021-09-21 | [github-actions] Add an explicit apt-get update before attempting to install ↵ | 1 | -0/+1 | ||
packages on ubuntu | |||||
2021-09-17 | [github-actions] Remove git checkout HEAD^2 step for CodeQL | 1 | -5/+0 | ||
2021-09-13 | Check availability of constructor attribute and use it on Windows in favor ↵ | 2 | -20/+45 | ||
of DllMain | |||||
2021-09-11 | windows: Make thread_once static and remove const qualifiers from ↵ | 1 | -3/+3 | ||
thread_once_t globals | |||||
2021-09-11 | Update deprecated autoconf macros and update m4 files | 4 | -127/+172 | ||
2021-07-13 | cpp: Array: Make sure the array passed to array_fill ist passed by reference | 1 | -1/+1 | ||
When creating a new Array object, for example through PList::Node::FromPlist(plist_t node), the array_fill function is called from Array() constructor in line 51. It seems that the intended way of calling array_fill() is to pass the _array object by reference, however it is actually passed by value. Thus the changes to the array object made by array_fill() are discarded when the function returns. This commit passes the _array by reference so we keep the changes. | |||||
2021-06-30 | README: Fix typo | 1 | -1/+1 | ||
2021-06-22 | [clang-tidy] Remove casts to the same type | 2 | -2/+2 | ||
Found with google-readability-casting Signed-off-by: Rosen Penev <rosenp@gmail.com> | |||||
2021-06-22 | [clang-tidy] cpp: Replace free with delete | 5 | -19/+9 | ||
It's the C++ way. It also avoids having to check for NULL. Found with cppcoreguidelines-owning-memory Signed-off-by: Rosen Penev <rosenp@gmail.com> | |||||
2021-06-22 | [clang-tidy] Fix bad widening casts | 1 | -2/+2 | ||
Found with bugprone-misplaced-widening-cast Signed-off-by: Rosen Penev <rosenp@gmail.com> | |||||
2021-06-22 | [clang-tidy] cpp: Use correct type for loop variable | 1 | -4/+2 | ||
Found with bugprone-too-small-loop-variable Signed-off-by: Rosen Penev <rosenp@gmail.com> | |||||
2021-06-22 | [clang-tidy] cpp: Turn reference operators to const | 20 | -20/+20 | ||
Found with cppcoreguidelines-c-copy-assignment-signature Signed-off-by: Rosen Penev <rosenp@gmail.com> | |||||
2021-06-22 | [clang-tidy] Avoid global non-const variables | 2 | -4/+4 | ||
Found with cppcoreguidelines-avoid-non-const-global-variables Signed-off-by: Rosen Penev <rosenp@gmail.com> | |||||
2021-06-22 | [clang-tidy] Remove pointless const | 2 | -2/+2 | ||
The const is actually misplaced. const plist_t evaluates to void *const instead of const void *. const qualification of the former makes no sense in function declarations. Found with misc-misplaced-const Signed-off-by: Rosen Penev <rosenp@gmail.com> | |||||
2021-06-09 | [github-actions] Create artifacts | 1 | -0/+45 | ||
2021-06-09 | [github-actions] Use python3/cython3 for building python bindings | 1 | -6/+20 | ||
2021-06-09 | [github-actions] macOS: Build arm64 _and_ x86_64 | 1 | -0/+10 | ||
2021-06-09 | [github-actions] Windows: Also build cython extension | 1 | -1/+2 | ||