2
0

NEWS 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309
  1. Version 2.6.0
  2. ~~~~~~~~~~~~~
  3. - Changes:
  4. * Revert back API change around PLIST_DATA to use char* again
  5. Version 2.5.0
  6. ~~~~~~~~~~~~~
  7. - Changes:
  8. * Change API around PLIST_DATA to use uint8_t* instead of char*
  9. * Add PLIST_DICT helper functions for different operations
  10. * Require Cython 3.0 for python bindings
  11. Version 2.4.0
  12. ~~~~~~~~~~~~~
  13. - Changes:
  14. * Add a PLIST_OPT_NONE value to plist_write_options_t
  15. * autoconf: Allow disabling build of test suite
  16. * Update doxygen config and document undocumented macros
  17. * Add an explicit PLIST_FORMAT_NONE value
  18. * Add a libplist_version() function to the interface
  19. * docs: Use README.md to generate mainpage with doxygen
  20. - Bugfixes:
  21. * Several compiler-related fixes and code improvements
  22. * Plug memory leak in plist_write_to_stream()
  23. * Prevent adding NULL items to array/dictionary nodes
  24. * Fix parallel running of test suite
  25. * Fix cython bindings
  26. * Fix OOB read in plist_from_memory()
  27. Version 2.3.0
  28. ~~~~~~~~~~~~~
  29. - Changes:
  30. * Rename PLIST_UINT to PLIST_INT and add plist_new_int() and plist_get_int_val()
  31. * Add support for JSON format
  32. * Add support for OpenStep format
  33. * Introduce error codes and format constants
  34. * Add return value to import/export functions to allow returning error codes
  35. * Add new plist_sort function
  36. * Add several human-readable output-only formats
  37. * Add new plist_write_to_string/_stream/_file functions
  38. * Add new plist_print function
  39. * Add new plist_read_from_file function
  40. * Add new plist_mem_free() function
  41. * Add a few C++ methods
  42. * Add C++ interface test
  43. * Add PLIST_NULL type
  44. * Some code housekeeping (mostly clang-tidy)
  45. - Breaking:
  46. * plist_from_memory() gets additional parameter
  47. - Bugfixes:
  48. * Fix multiple bugs in all of the parsers
  49. * Fix handling of PLIST_UID nodes
  50. Version 2.2.0
  51. ~~~~~~~~~~~~~
  52. - Changes:
  53. * bplist: Improve recursion check performance by at least 30% for large files
  54. * test: Fix test suite on Windows
  55. * cython: Fix handling of Date nodes (MACH_EPOCH)
  56. * Add new plist_*_val_compare(), plist_*_val_contains() helper functions
  57. * Fix/suppress several compiler warnings
  58. * plistutil: Added ability for files to be read from stdin
  59. * plistutil: Added ability to specify output format
  60. * Fix: Return NULL from plist_copy() if passed a NULL pointer instead of asserting
  61. * Add GitHub Actions integration for automatic build tests
  62. * plistutil: Add manual page and usage output
  63. * Fix removal of docs directory on `make clean`
  64. * Improve README.md with project description, installation, contributing and
  65. usage sections
  66. * Rename library and all related files by adding an API version resulting
  67. in "libplist-2.0" and "libplist++-2.0"
  68. Version 2.1.0
  69. ~~~~~~~~~~~~~
  70. - Changes:
  71. * Add new plist_get_data_ptr() and plist_get_string_ptr() for direct access to underlying buffer
  72. * Increase precision when converting PLIST_REAL nodes to XML
  73. * Fix several issues in libcnary (UaF, segfault, memory leak)
  74. * Fix copying of hash table entries when cloning array/dict nodes
  75. * cython: Implement load()/loads() and dump()/dumps() to match up with plistlib (Python 3.4)
  76. * Add new plist_dict_item_get_key() for retrieving key node of a dict item
  77. * Add new plist_array_item_remove() to allow removing an array's child node without relying on the index
  78. * Make plist_array_get_item_index() return UINT_MAX instead of 0 when node can't be found
  79. * Add index lookup table for large PLIST_ARRAY nodes
  80. * Add iterator for array nodes: plist_array_new_iter(), plist_array_next_item()
  81. * Improve performance of plist_dict_next_item() drastically
  82. * Improve performance and memory usage when writing XML plists
  83. * Improve performance and memory usage when writing binary plists
  84. * Allow building with sanitizers (without fuzzers)
  85. * Prevent store to misaligned address when writing real/date nodes
  86. * Work around misaligned reads in binary plist parser
  87. * Integrate fuzzing targets (libFuzzer) into project
  88. * Add sanitizers (ASAN, UBSAN) when building fuzzers (--with-fuzzers)
  89. Version 2.0.0
  90. ~~~~~~~~~~~~~
  91. - Changes:
  92. * New light-weight custom XML parser
  93. * Remove libxml2 dependency
  94. * Refactor binary plist parsing
  95. * Improved malformed XML and binary plist detection and error handling
  96. * Add parser debug/error output (when compiled with --enable-debug), controlled via environment variables
  97. * Fix unicode character handling
  98. * Add PLIST_IS_* helper macros for the different node types
  99. * Extend date/time range and date conversion issues
  100. * Add plist_is_binary() and plist_from_memory() functions to the interface
  101. * Plug several memory leaks
  102. * Speed improvements for handling large plist files
  103. - Includes security fixes for:
  104. * CVE-2017-6440
  105. * CVE-2017-6439
  106. * CVE-2017-6438
  107. * CVE-2017-6437
  108. * CVE-2017-6436
  109. * CVE-2017-6435
  110. * CVE-2017-5836
  111. * CVE-2017-5835
  112. * CVE-2017-5834
  113. * CVE-2017-5545
  114. * CVE-2017-5209
  115. ... and several others that didn't receive any CVE (yet).
  116. Version 1.12
  117. ~~~~~~~~~~~~
  118. - Changes:
  119. * Fix plist_from_bin() changing value nodes to key nodes in dictionaries
  120. * Avoid exporting non-public symbols
  121. * Prevent crash in plist_from_bin() when parsing unusual binary plists
  122. * Fix crash in String|Key::GetValue() and actually make C++ interface work
  123. * Fix memory leaks in new_xml_plist() and parse_real_node()
  124. * Fix header guards to conform to C++ standard
  125. * Update Cython based Python bindings and remove plist_new_key()
  126. * Fix key nodes not being output correctly if they contained XML entities
  127. * Fix handling and storage of signed vs. unsigned integer values
  128. * Fix date handling to respect the "Mac Epoch" instead of "Unix Epoch"
  129. * Remove plist_set_type() as it should not be used
  130. * Fix deprecated macros to work with older LLVM/Clang
  131. * Fix various shadowed declarations
  132. * Add documentation to explicitly describe memory buffer ownership
  133. * Fix memory leak in plist_from_bin()
  134. * Add various test cases based on fixes
  135. * Fix wrong timezone related date/time conversion of date nodes
  136. * Fix endian detection on MIPS architecture
  137. * Fix parallel build for autotools
  138. Version 1.11
  139. ~~~~~~~~~~~~
  140. - Changes:
  141. * Deprecated plist_dict_insert_item() in favor of plist_dict_set_item()
  142. * Updated cython bindings for Python 3.x
  143. * Removed swig python bindings
  144. * Changed build system to autotools
  145. * Added new plist_dict_merge() function
  146. * WIN32 (MinGW) + OSX compilation fixes
  147. * Made base64 decoding thread safe
  148. Version 1.10
  149. ~~~~~~~~~~~~
  150. - Changes:
  151. * Renamed plutil to plistutil to not mask Apple's plutil
  152. * Fixed cython bindings (broken in 1.9)
  153. * Added support for PLIST_UID node types to C++, cython, and swig bindings
  154. - Important Note:
  155. * Support for swig python bindings will be dropped with future releases.
  156. The bindings will be kept in the source tree for now, but we suggest
  157. to update your python code to use the cython bindings instead.
  158. Version 1.9
  159. ~~~~~~~~~~~
  160. - Changes:
  161. * Add support for handling UID node types
  162. * Fix crash when converting plists containing comments
  163. * Fix Bug in plist_data_compare()
  164. * Fix DST handling for PLIST_DATE
  165. * Fix plist_dict_set_item() and plist_array_set_item()
  166. * Fix cython String plist handling
  167. * Fix invalid memory access in copy_plist_data()
  168. * Fix several compiler warnings
  169. Version 1.8
  170. ~~~~~~~~~~~
  171. - Changes:
  172. * Add cython bindings
  173. * Fix error in swig bindings
  174. * Fix memory corruption in libcnary
  175. Version 1.7
  176. ~~~~~~~~~~~
  177. - Changes:
  178. * Fix building on Big Endian systems
  179. Version 1.6
  180. ~~~~~~~~~~~
  181. - Changes:
  182. * Updated libcnary sources, adding license and copyright info
  183. Version 1.5
  184. ~~~~~~~~~~~
  185. - Changes:
  186. * Removed glib dependency, libplist now uses libcnary
  187. (http://github.com/Chronic-Dev/libcnary)
  188. * Fix building of python bindings with GCC 4.6
  189. Version 1.4
  190. ~~~~~~~~~~~
  191. - New maintainer and source location
  192. - Changes:
  193. * Update AUTHORS from git history
  194. * Fix Unicode writing in binary plists
  195. * Update plist doctype
  196. * Fix Dictionary copy constructor
  197. * Fix Mac OS X library install path detection
  198. * Plug memory leak when writing Unicode data
  199. Version 1.3
  200. ~~~~~~~~~~~
  201. - Changes:
  202. * Endianness, alignment and type-punning fixes
  203. * Fix armel floating point endianess
  204. * Allow compiling with mingw on Windows
  205. * Minor bugfixes
  206. Version 1.2
  207. ~~~~~~~~~~~
  208. - Changes:
  209. * Fix xml entity conversion
  210. * Silence build warnings
  211. Version 1.1
  212. ~~~~~~~~~~~
  213. - Changes:
  214. * Fix use of integer nodes within Python Bindings
  215. Version 1.0
  216. ~~~~~~~~~~~
  217. - Changes:
  218. * Bugfixes
  219. * Remove deprecated API
  220. Version 0.16
  221. ~~~~~~~~~~~~
  222. - Changes:
  223. * Build fixes
  224. * Fix issues with SWIG
  225. Version 0.15
  226. ~~~~~~~~~~~~
  227. - Changes:
  228. * Build fixes
  229. Version 0.14
  230. ~~~~~~~~~~~~
  231. - Changes:
  232. * Add C++ binding
  233. * Refactor API
  234. * Bugfixes
  235. Version 0.13
  236. ~~~~~~~~~~~~
  237. - Changes:
  238. * Add plist_copy for deep node copies
  239. * Add node setter functions
  240. * Unlink nodes from parent if free'd
  241. * Update Python bindings
  242. Version 0.12
  243. ~~~~~~~~~~~~
  244. - Changes:
  245. * Merge ascii and unicode handling in PLIST_STRING using UTF-8
  246. * Remove unicode related declaration in API (breaks API&ABI)
  247. * Fix bad variable type for date elements
  248. * Silence compiler warnings
  249. * Plugged few memory leaks
  250. Version 0.11
  251. ~~~~~~~~~~~~
  252. - Changes:
  253. * Fix Python binding segfaults
  254. * Python API additions
  255. * Better binary buffer handling in Python bindings