summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
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
2019-05-11cython: use PYTHON_LIBS instead of PYTHON_LDFLAGSGravatar Yves-Alexis Perez1-1/+1
New version of AX_PYTHON_DEVEL macro defines PYTHON_LIBS and not PYTHON_LDFLAGS, so adjust where needed
2019-05-11Use Requires.private in *.pc files to not add unnecessary links.Gravatar Julien Lavergne1-1/+1
2019-04-04Updated ac_python_devel.m4 to newer ax_python_devel.m4Gravatar Nikias Bassen1-65/+123
2019-01-21libcnary: Remove list.c/list.h and just do everything in node_list.cGravatar Nikias Bassen4-94/+6
2019-01-21headers: Don't redefine uint*_t for newer versions of MSVCGravatar Nikias Bassen1-1/+1
2019-01-21cpp: Dictionary: Reduce code duplication with helper functionGravatar Nikias Bassen1-47/+16