mirror of
https://github.com/libimobiledevice/libplist.git
synced 2026-05-17 20:30:34 +00:00
331 lines
10 KiB
Plaintext
331 lines
10 KiB
Plaintext
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
|
|
~~~~~~~~~~~
|
|
|
|
- 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
|
|
|