summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2020-05-26Bump version and soversion for releaseGravatar Nikias Bassen1-2/+2
2020-05-26Make plist_bool_val_is_true() return 0 instead of -1 if node is NULL or not ↵Gravatar Nikias Bassen1-1/+1
a PLIST_BOOLEAN
2020-05-25Return NULL from plist_copy() if passed a NULL pointerGravatar Xiao Deng1-1/+1
This will prevent an assert if a NULL pointer is passed, and can make writing some code easier and cleaner without the need for a NULL check. For example, plist_copy(plist_dict_get_item(dict, "abc")) would give us a copy of the dict's node if the dict has a value for the given key, or NULL without any further checks.
2020-05-24plistutil: Improve usage text alignmentGravatar Nikias Bassen1-4/+4
2020-05-24plistutil: Added ability to specify output formatGravatar Jaywalker1-8/+59
2020-05-24plistutil: Added ability for files to be read from stdinGravatar Jaywalker1-25/+71
2020-05-21Fix symbol mismatch between public header and interface (plist_bool_val_is_true)Gravatar Nikias Bassen1-1/+1
2020-05-14time64: Silence compiler warnings about shadowed variable declarationsGravatar Nikias Bassen1-29/+29
2020-05-14bplist: Prevent 32bit compiler warningGravatar Nikias Bassen1-1/+3
2020-05-14Fix configure check for -lm to actually check if -lm is requiredGravatar Nikias Bassen1-2/+8
AC_TRY_COMPILE doesn't try to link so we better use AC_TRY_LINK
2020-05-14Links with -lm if fmin doesn't seem to be a builtinGravatar Nikias Bassen1-0/+12
2020-05-11bplist: Remove unnecessary allocation and unused variablesGravatar Nikias Bassen1-10/+5
2020-05-11Suppress compiler warning about memmem on LinuxGravatar Nikias Bassen1-0/+1
2020-05-11Add plist_*_val_compare, plist_*_val_contains, etc. for the respective node ↵Gravatar Nikias Bassen3-1/+415
types ... except container node types like PLIST_ARRAY or PLIST_DICT.
2020-04-21time64/ctime64_r: localtime64_r can failGravatar Derrick Lyndon Pallas1-1/+3
In ctime64_r, the call to localtime64_r can fail. If we don't check for this and then call asctime64_r, the results are garbage. Signed-off-by: Derrick Lyndon Pallas <derrick@pallas.us>
2020-04-14cython: Fix get_value for Data nodesGravatar Nikias Bassen1-5/+1
2020-04-13[github-actions] Install cython via pipGravatar Nikias Bassen1-2/+3
2020-04-13cython: Fix handling of Date nodes (needs MACH_EPOCH)Gravatar Nikias Bassen1-0/+4
2019-12-18test: Use diff --strip-trailing-cr to fix tests on windowsGravatar Nikias Bassen3-9/+6
2019-12-18[github-actions] Run last step in windows build check even if previous one ↵Gravatar Nikias Bassen1-0/+1
failed
2019-12-18test: Write outputfile to test log for signedunsigned2 testGravatar Nikias Bassen1-0/+3
2019-12-18[github actions] Print test log of failed tests when testing windows buildGravatar Nikias Bassen1-0/+12
2019-12-09bplist: Silence compiler warningGravatar Nikias Bassen1-2/+2
2019-12-09[github actions] trying to fix windows build...Gravatar Nikias Bassen1-3/+3
2019-12-09[github action] Hopefully fix windows buildGravatar Nikias Bassen1-1/+1
2019-12-09[github actions] Trying to add windows to build workflowGravatar Nikias Bassen1-15/+29
2019-12-09[github actions] Update build workflow to not run brew as root for macOSGravatar Nikias Bassen1-1/+1
2019-12-09[github actions] Update build workflowGravatar Nikias Bassen1-0/+15
2019-12-09bplist: Add cast to/from uint32_t when reading/storing indices for recursion ↵Gravatar Nikias Bassen1-4/+4
check
2019-12-09[github actions] Fix workflowGravatar Nikias Bassen1-1/+4
2019-12-09bplist: use ptr_array instead of PLIST_ARRAY to store node indices for ↵Gravatar XD1-10/+10
recursing check This improves performance by at least 30% for large files, and also reduces the memory footprint.
2019-12-09ptrarray: Add function returning the size (number of elements) of the arrayGravatar XD2-1/+7
2019-12-05Add build workflowGravatar Nikias Bassen1-0/+18
2019-11-07Bump version to 2.1.0 for release2.1.0Gravatar Nikias Bassen1-1/+1
2019-11-07Bump soversion due to functions added to interfaceGravatar Nikias Bassen1-1/+1
2019-11-07Updated NEWS for releaseGravatar Nikias Bassen1-0/+23
2019-11-07xplist: Bail out when '.' is found while checking for ',' in double to ↵Gravatar Nikias Bassen1-0/+2
string conversion
2019-11-07Add plist_get_data_ptr() and plist_get_string_ptr() to the interfaceGravatar Nikias Bassen2-0/+51
2019-11-07Add plist_to_bin_free() and plist_to_xml_free() functions that free memory ↵Gravatar Nikias Bassen3-0/+24
allocated by plist_to_bin()/plist_to_xml()
2019-11-07xplist: Increase precision when converting PLIST_REAL nodes to XMLGravatar Nikias Bassen1-37/+16
2019-10-23Updated .gitignoreGravatar Nikias Bassen1-0/+2
2019-09-03libcnary: [BUGFIX] Set list->end to NULL when removing last and only element ↵Gravatar Nikias Bassen1-0/+2
from list This prevents a UaF in node_list_add. The issue became visible after removing the last (and only) item from a PLIST_DICT or PLIST_ARRAY node, and then adding a new item - the item will not make it into the actual dictionary or array because the list->end pointer points to invalid memory, effectively causing memory corruption.
2019-08-13plist: Remove unnecessary parameter from plist_copy_node()Gravatar Xiao Deng1-14/+6
2019-08-09Make sure to copy hash table entries properly when cloning array/dict nodesGravatar Nikias Bassen1-18/+22
As mentioned in #142, plist_copy_node() was not correctly handling the hash tables when cloning array or dict nodes; it incorrectly filled the hash table with the original child node info, which effectively would lead to a segmentation fault / UaF if the original array/dict would be freed followed by an attempt to access an element in the new hash table.
2019-08-08cython: Make sure plist.pxd is installed correctlyGravatar Nikias Bassen1-0/+3
2019-08-08cython: Remove unused variableGravatar Nikias Bassen1-1/+0
2019-08-08cython: Fix compilationGravatar Nikias Bassen1-0/+4
2019-07-11cython: Implement dump()/dumps() to match up with plistlib (Python 3.4)Gravatar Andrew Udvare2-0/+37
2019-07-11cython: Implement load()/loads() to match up with plistlib (Python 3.4)Gravatar Andrew Udvare2-0/+58
2019-07-07Add PList::Dictionary::const_iteratorGravatar Alexander Böhn2-0/+19
... and const versions of three member functions, each returning const_iterator: * Plist::Dictionary::Begin() * PList::Dictionary::End() * PList::Dictionary::Find()