Make sure to copy hash table entries properly when cloning array/dict nodes

As mentioned in #142, plist_copy_node() was not correctly handling the hash
tables when cloning array or dict nodes; it incorrectly filled the hash table
with the original child node info, which effectively would lead to a
segmentation fault / UaF if the original array/dict would be freed followed
by an attempt to access an element in the new hash table.
1 file changed
tree: 9b3f2bd9960aa0a2e17c8c6d53e53646d7638eec
  1. cython/
  2. fuzz/
  3. include/
  4. libcnary/
  5. m4/
  6. src/
  7. test/
  8. tools/
  9. .gitignore
  10. AUTHORS
  11. autogen.sh
  12. configure.ac
  13. COPYING
  14. COPYING.LESSER
  15. doxygen.cfg.in
  16. Makefile.am
  17. NEWS
  18. README.md
README.md

libplist

About

A small portable C library to handle Apple Property List files in binary or XML.

Requirements

Software:

  • make
  • autoheader
  • automake
  • autoconf
  • libtool
  • pkg-config
  • gcc or clang

Optional:

  • cython (Python bindings)
  • doxygen (Documentation)

Installation

To compile run:

./autogen.sh
make
sudo make install

If you require a custom prefix or other option being passed to ./configure you can pass them directly to ./autogen.sh like this:

./autogen.sh --prefix=/opt/local --without-cython
make
sudo make install

Who/What/Where?

Credits

Apple, iPhone, iPod, and iPod Touch are trademarks of Apple Inc. libimobiledevice is an independent software library and has not been authorized, sponsored, or otherwise approved by Apple Inc.

README Updated on: 2019-05-16