summaryrefslogtreecommitdiffstats
path: root/NEWS
diff options
context:
space:
mode:
Diffstat (limited to 'NEWS')
-rw-r--r--NEWS213
1 files changed, 213 insertions, 0 deletions
diff --git a/NEWS b/NEWS
index f9aa18c..2627893 100644
--- a/NEWS
+++ b/NEWS
@@ -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
~~~~~~~~~~~