libcnary: [BUGFIX] Set list->end to NULL when removing last and only element from list

This prevents a UaF in node_list_add. The issue became visible after removing
the last (and only) item from a PLIST_DICT or PLIST_ARRAY node, and then
adding a new item - the item will not make it into the actual dictionary or
array because the list->end pointer points to invalid memory, effectively
causing memory corruption.
1 file changed
tree: c7d1f351abade12f9ff3a27ddd9808afcb6788b0
  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