diff options
Diffstat (limited to 'NEWS')
| -rw-r--r-- | NEWS | 213 |
1 files changed, 213 insertions, 0 deletions
@@ -1,3 +1,216 @@ +Version 2.7.0 +~~~~~~~~~~~~~ + +- Changes: + * Add plist_new_unix_date, plist_get_unix_date_val, plist_set_unix_date_val functions + that work with int64_t values representing a UNIX timestamp instead of + using the 'MAC epoch'. + These new functions should be used instead of plist_new_date, + plist_get_date_val, and plist_set_date_val, which are now marked deprecated + and might be removed in a future version of libplist. + * Allow building the library without tool(s) + * Switch to more generic global initializer method + * json: Allow e+/E+ in exponent as per RFC 8259 + * C++: Add more convenience functions to the interface + * C++: Add more type variants to different constructors and operators +- Bugfixes: + * Fix segmentation fault when calling plist_sort() on an empty dictionary + * Fix compilation on MSVC + * C++: Fix bug in internal helper function of Array class + * C++: Fix String::GetValue memory leaking and support assignment of const char* + +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 ~~~~~~~~~~~ |
