123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309 |
- Version 2.6.0
- ~~~~~~~~~~~~~
- - Changes:
- * Revert back API change around PLIST_DATA to use char* again
- Version 2.5.0
- ~~~~~~~~~~~~~
- - Changes:
- * Change API around PLIST_DATA to use uint8_t* instead of char*
- * Add PLIST_DICT helper functions for different operations
- * Require Cython 3.0 for python bindings
- Version 2.4.0
- ~~~~~~~~~~~~~
- - Changes:
- * Add a PLIST_OPT_NONE value to plist_write_options_t
- * autoconf: Allow disabling build of test suite
- * Update doxygen config and document undocumented macros
- * Add an explicit PLIST_FORMAT_NONE value
- * Add a libplist_version() function to the interface
- * docs: Use README.md to generate mainpage with doxygen
- - Bugfixes:
- * Several compiler-related fixes and code improvements
- * Plug memory leak in plist_write_to_stream()
- * Prevent adding NULL items to array/dictionary nodes
- * Fix parallel running of test suite
- * Fix cython bindings
- * Fix OOB read in plist_from_memory()
- Version 2.3.0
- ~~~~~~~~~~~~~
- - Changes:
- * Rename PLIST_UINT to PLIST_INT and add plist_new_int() and plist_get_int_val()
- * Add support for JSON format
- * Add support for OpenStep format
- * Introduce error codes and format constants
- * Add return value to import/export functions to allow returning error codes
- * Add new plist_sort function
- * Add several human-readable output-only formats
- * Add new plist_write_to_string/_stream/_file functions
- * Add new plist_print function
- * Add new plist_read_from_file function
- * Add new plist_mem_free() function
- * Add a few C++ methods
- * Add C++ interface test
- * Add PLIST_NULL type
- * Some code housekeeping (mostly clang-tidy)
- - Breaking:
- * plist_from_memory() gets additional parameter
- - Bugfixes:
- * Fix multiple bugs in all of the parsers
- * Fix handling of PLIST_UID nodes
- Version 2.2.0
- ~~~~~~~~~~~~~
- - Changes:
- * bplist: Improve recursion check performance by at least 30% for large files
- * test: Fix test suite on Windows
- * cython: Fix handling of Date nodes (MACH_EPOCH)
- * Add new plist_*_val_compare(), plist_*_val_contains() helper functions
- * Fix/suppress several compiler warnings
- * plistutil: Added ability for files to be read from stdin
- * plistutil: Added ability to specify output format
- * Fix: Return NULL from plist_copy() if passed a NULL pointer instead of asserting
- * Add GitHub Actions integration for automatic build tests
- * plistutil: Add manual page and usage output
- * Fix removal of docs directory on `make clean`
- * Improve README.md with project description, installation, contributing and
- usage sections
- * Rename library and all related files by adding an API version resulting
- in "libplist-2.0" and "libplist++-2.0"
- Version 2.1.0
- ~~~~~~~~~~~~~
- - Changes:
- * Add new plist_get_data_ptr() and plist_get_string_ptr() for direct access to underlying buffer
- * Increase precision when converting PLIST_REAL nodes to XML
- * Fix several issues in libcnary (UaF, segfault, memory leak)
- * Fix copying of hash table entries when cloning array/dict nodes
- * cython: Implement load()/loads() and dump()/dumps() to match up with plistlib (Python 3.4)
- * Add new plist_dict_item_get_key() for retrieving key node of a dict item
- * Add new plist_array_item_remove() to allow removing an array's child node without relying on the index
- * Make plist_array_get_item_index() return UINT_MAX instead of 0 when node can't be found
- * Add index lookup table for large PLIST_ARRAY nodes
- * Add iterator for array nodes: plist_array_new_iter(), plist_array_next_item()
- * Improve performance of plist_dict_next_item() drastically
- * Improve performance and memory usage when writing XML plists
- * Improve performance and memory usage when writing binary plists
- * Allow building with sanitizers (without fuzzers)
- * Prevent store to misaligned address when writing real/date nodes
- * Work around misaligned reads in binary plist parser
- * Integrate fuzzing targets (libFuzzer) into project
- * Add sanitizers (ASAN, UBSAN) when building fuzzers (--with-fuzzers)
- Version 2.0.0
- ~~~~~~~~~~~~~
- - Changes:
- * New light-weight custom XML parser
- * Remove libxml2 dependency
- * Refactor binary plist parsing
- * Improved malformed XML and binary plist detection and error handling
- * Add parser debug/error output (when compiled with --enable-debug), controlled via environment variables
- * Fix unicode character handling
- * Add PLIST_IS_* helper macros for the different node types
- * Extend date/time range and date conversion issues
- * Add plist_is_binary() and plist_from_memory() functions to the interface
- * Plug several memory leaks
- * Speed improvements for handling large plist files
- - Includes security fixes for:
- * CVE-2017-6440
- * CVE-2017-6439
- * CVE-2017-6438
- * CVE-2017-6437
- * CVE-2017-6436
- * CVE-2017-6435
- * CVE-2017-5836
- * CVE-2017-5835
- * CVE-2017-5834
- * CVE-2017-5545
- * CVE-2017-5209
- ... and several others that didn't receive any CVE (yet).
- Version 1.12
- ~~~~~~~~~~~~
- - Changes:
- * Fix plist_from_bin() changing value nodes to key nodes in dictionaries
- * Avoid exporting non-public symbols
- * Prevent crash in plist_from_bin() when parsing unusual binary plists
- * Fix crash in String|Key::GetValue() and actually make C++ interface work
- * Fix memory leaks in new_xml_plist() and parse_real_node()
- * Fix header guards to conform to C++ standard
- * Update Cython based Python bindings and remove plist_new_key()
- * Fix key nodes not being output correctly if they contained XML entities
- * Fix handling and storage of signed vs. unsigned integer values
- * Fix date handling to respect the "Mac Epoch" instead of "Unix Epoch"
- * Remove plist_set_type() as it should not be used
- * Fix deprecated macros to work with older LLVM/Clang
- * Fix various shadowed declarations
- * Add documentation to explicitly describe memory buffer ownership
- * Fix memory leak in plist_from_bin()
- * Add various test cases based on fixes
- * Fix wrong timezone related date/time conversion of date nodes
- * Fix endian detection on MIPS architecture
- * Fix parallel build for autotools
- Version 1.11
- ~~~~~~~~~~~~
- - Changes:
- * Deprecated plist_dict_insert_item() in favor of plist_dict_set_item()
- * Updated cython bindings for Python 3.x
- * Removed swig python bindings
- * Changed build system to autotools
- * Added new plist_dict_merge() function
- * WIN32 (MinGW) + OSX compilation fixes
- * Made base64 decoding thread safe
- Version 1.10
- ~~~~~~~~~~~~
- - Changes:
- * Renamed plutil to plistutil to not mask Apple's plutil
- * Fixed cython bindings (broken in 1.9)
- * Added support for PLIST_UID node types to C++, cython, and swig bindings
- - Important Note:
- * Support for swig python bindings will be dropped with future releases.
- The bindings will be kept in the source tree for now, but we suggest
- to update your python code to use the cython bindings instead.
- Version 1.9
- ~~~~~~~~~~~
- - Changes:
- * Add support for handling UID node types
- * Fix crash when converting plists containing comments
- * Fix Bug in plist_data_compare()
- * Fix DST handling for PLIST_DATE
- * Fix plist_dict_set_item() and plist_array_set_item()
- * Fix cython String plist handling
- * Fix invalid memory access in copy_plist_data()
- * Fix several compiler warnings
- Version 1.8
- ~~~~~~~~~~~
- - Changes:
- * Add cython bindings
- * Fix error in swig bindings
- * Fix memory corruption in libcnary
- Version 1.7
- ~~~~~~~~~~~
- - Changes:
- * Fix building on Big Endian systems
- Version 1.6
- ~~~~~~~~~~~
- - Changes:
- * Updated libcnary sources, adding license and copyright info
- Version 1.5
- ~~~~~~~~~~~
- - Changes:
- * Removed glib dependency, libplist now uses libcnary
- (http://github.com/Chronic-Dev/libcnary)
- * Fix building of python bindings with GCC 4.6
- Version 1.4
- ~~~~~~~~~~~
- - New maintainer and source location
- - Changes:
- * Update AUTHORS from git history
- * Fix Unicode writing in binary plists
- * Update plist doctype
- * Fix Dictionary copy constructor
- * Fix Mac OS X library install path detection
- * Plug memory leak when writing Unicode data
- Version 1.3
- ~~~~~~~~~~~
- - Changes:
- * Endianness, alignment and type-punning fixes
- * Fix armel floating point endianess
- * Allow compiling with mingw on Windows
- * Minor bugfixes
- Version 1.2
- ~~~~~~~~~~~
- - Changes:
- * Fix xml entity conversion
- * Silence build warnings
- Version 1.1
- ~~~~~~~~~~~
- - Changes:
- * Fix use of integer nodes within Python Bindings
- Version 1.0
- ~~~~~~~~~~~
- - Changes:
- * Bugfixes
- * Remove deprecated API
- Version 0.16
- ~~~~~~~~~~~~
- - Changes:
- * Build fixes
- * Fix issues with SWIG
- Version 0.15
- ~~~~~~~~~~~~
- - Changes:
- * Build fixes
- Version 0.14
- ~~~~~~~~~~~~
- - Changes:
- * Add C++ binding
- * Refactor API
- * Bugfixes
- Version 0.13
- ~~~~~~~~~~~~
- - Changes:
- * Add plist_copy for deep node copies
- * Add node setter functions
- * Unlink nodes from parent if free'd
- * Update Python bindings
- Version 0.12
- ~~~~~~~~~~~~
- - Changes:
- * Merge ascii and unicode handling in PLIST_STRING using UTF-8
- * Remove unicode related declaration in API (breaks API&ABI)
- * Fix bad variable type for date elements
- * Silence compiler warnings
- * Plugged few memory leaks
- Version 0.11
- ~~~~~~~~~~~~
- - Changes:
- * Fix Python binding segfaults
- * Python API additions
- * Better binary buffer handling in Python bindings
|