summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
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()
2019-06-26Fixed bug in dictionary_fillGravatar tihmstar1-1/+1
Bug: when creating a new Dictionary object (for example through PList::Node::FromPlist(plist_t node) ), the dictionary_fill function is called from Dictionary() constructor in line 50. It seems that the intended way of calling dictionary_fill() is to pass the _map object by reference, however it is actually passed by value. Thus the changes to the map object made by dictionary_fill() are discarded when the function returns. Fix: pass _map by reference to keep the changes
2019-05-20plist_set_key_val(): prevent setting a key value that already exists in a ↵Gravatar Nikias Bassen1-0/+5
PLIST_DICT
2019-05-20Add plist_dict_item_get_key() to allow retrieving the key node for a given ↵Gravatar Nikias Bassen2-2/+21
item of a #PLIST_DICT
2019-05-19Add plist_array_item_remove() to allow removing an array's child node ↵Gravatar Nikias Bassen2-0/+23
without relying on the index
2019-05-19plist_array_get_item_index(): return UINT_MAX instead of 0 when node can't ↵Gravatar Nikias Bassen3-2/+6
be found
2019-05-19Add index lookup table for large PLIST_ARRAY nodesGravatar Nikias Bassen3-22/+113
2019-05-16Converted README to markdown and updated links to httpsGravatar Nikias Bassen2-68/+55
2019-05-16Ignore invalid input in plist_get_*_val() to prevent unnecessary assertionsGravatar Nikias Bassen1-19/+50
Also fixes #126 by skipping the strlen() in the assert() if for some reason NULL is returned as data
2019-05-16test: Merge *cmp.test into *.test to allow parallel testingGravatar Nikias Bassen13-48/+24
2019-05-11m4: update ax_pthread to latestGravatar Yves-Alexis Perez1-3/+3
Latest version (serial 24) only updates the URL