Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2015-01-31 | bplist: Fix possible crash in plist_from_bin() caused by access to already ↵ | Nikias Bassen | 1 | -3/+5 | |
freed memory Given a specifically ordered binary plist the function plist_from_bin() would free BPLIST_DICT or BPLIST_ARRAY raw node data that is still required for parsing of following nodes. This commit addresses this issues by moving the memory free to the end of the parsing process. | |||||
2015-01-29 | Move pkg-config file into src directory | Martin Szulecki | 3 | -0/+25 | |
2015-01-23 | xplist: Plug memory leak by cleaning up libxml2's parser after use | Martin Szulecki | 1 | -0/+16 | |
This is actually considered bad practice. However, it appears this memory leak is otherwise not possible to fix due to a design flaw in how libxml2 handles the lifecycle of it's XML parser. We'll let the community test this in production now and decide. In our tests this change had no drawbacks except fixing the last known memory leak in libplist. | |||||
2015-01-23 | Update and correct some copyright header comments | Martin Szulecki | 2 | -2/+6 | |
2015-01-23 | xplist: Fix limited but possible XXE security vulnerability with XML plists | Martin Szulecki | 1 | -4/+16 | |
By using a specifically crafted XML file an attacker could use plistutil to issue a GET request to an arbitrary URL or disclose a local file. The crafted XML file would be using a custom DTD with an external entity reference pointing to the file. Practical abuse is limited but let's still fix it nevertheless. Related to CVE-2013-0339 for libxml2 and CWE-827. Reported by Loïc Bénis from calypt.com. Thanks! | |||||
2015-01-11 | Pass flag '-avoid-version' to libtool for libplist++ in addition to libplist ↵ | Aaron Burghardt | 1 | -0/+1 | |
for WIN32. | |||||
2014-10-09 | bplist: Fix plist_from_bin() changing value nodes to key nodes in dictionaries | Martin Szulecki | 1 | -11/+33 | |
The parsing logic for binary dictionaries wrongly enforced the key type even on nodes that were already parsed as value nodes. This caused the resulting plist_t node tree to have key nodes instead of value nodes within dictionaries for some valid binary plists. This commit should also generally fixes parsing of binary plist files which use an efficient dictionary reference table. | |||||
2014-10-03 | Drop src/common.h and use byte order macros from config.h directly | Nikias Bassen | 3 | -33/+15 | |
2014-10-03 | Avoid exporting non-public symbols | Nikias Bassen | 9 | -82/+82 | |
2014-09-23 | bplist: Prevent crash in plist_from_bin() when parsing unusually structured ↵ | Nikias Bassen | 1 | -1/+1 | |
binary plist | |||||
2014-09-20 | C++: Make sure String::GetValue() and Key::GetValue() don't crash with NULL ↵ | Nikias Bassen | 2 | -4/+14 | |
strings | |||||
2014-09-20 | Added const to Array.GetSize(), and to 3 Node methods. | Aaron Burghardt | 2 | -5/+5 | |
2014-09-20 | Change Clone() to be const, which required constructors with const ↵ | Aaron Burghardt | 11 | -32/+37 | |
references and a const GetValue(). | |||||
2014-08-25 | Fixed memory leaks in new_xml_plist() and parse_real_node(). | Aaron Burghardt | 2 | -3/+1 | |
2014-08-06 | bplist: Silence compiler warning about 'always true' comparison due to type ↵ | Nikias Bassen | 1 | -2/+6 | |
mismatch | |||||
2014-05-27 | xplist: Fix keys not being output correctly if converted to XML entities | Martin Szulecki | 1 | -5/+11 | |
2014-05-23 | Handle signed vs. unsigned integer values correctly | Nikias Bassen | 2 | -5/+53 | |
2014-05-22 | xplist: Handle DST-affected timezones correctly | Nikias Bassen | 1 | -1/+1 | |
2014-05-22 | xplist: Fix PLIST_DATE handling to respect the Mac epoch | Nikias Bassen | 1 | -2/+4 | |
2014-05-21 | xplist: Fix PLIST_DATE parsing in xml_to_node() | Nikias Bassen | 1 | -1/+1 | |
2014-05-20 | Removed plist_set_type() as it should not be used. | Nikias Bassen | 1 | -30/+0 | |
2014-05-20 | Rename "index" variable as it shadows global declaration on older systems | Martin Szulecki | 3 | -7/+7 | |
2014-05-18 | xplist: Silence compiler warnings about shadowing global declarations | Nikias Bassen | 1 | -8/+8 | |
2014-05-18 | bplist: Fix memory leaking caused by unused nodes in plist_from_bin() | Nikias Bassen | 1 | -0/+9 | |
2014-04-02 | Simplify plist_dict_merge() after plist_dict_set_item() API change | Nikias Bassen | 1 | -3/+0 | |
2014-04-01 | xplist: Fix timezone-bound date/time conversion | Nikias Bassen | 1 | -1/+4 | |
2014-03-29 | Fix endian detection in configure.ac | Chow Loong Jin | 1 | -0/+4 | |
On debian-mips, neither __LITTLE_ENDIAN__ nor __BIG_ENDIAN__ are defined anywhere, so PLIST_BYTE_ORDER defaults to PLIST_LITTLE_ENDIAN when it should really be PLIST_BIG_ENDIAN on this architecture. This fixes issue #13. | |||||
2014-03-28 | build-sys: Fix parallel build | Christophe Fergeau | 1 | -1/+1 | |
On my machine, parallel builds fail with: make[2]: Entering directory `/home/teuf/hack/libplist/src' CCLD libplist.la make[2]: *** No rule to make target `../src/libplist.la', needed by `libplist++.la'. Stop. If $(top_builddir)/src/libplist.la does not exist yet when trying to link libplist++.la, automake/make will not realize the $(top_builddir)/src/libplist.la dependency is the same as the libplist.la target, and will thus be unable to generate $(top_builddir)/src/libplist.la. Using the libplist.la instead fixes this issue. I've checked that srcdir!=builddir and make distcheck still pass after this change. | |||||
2014-03-19 | deprecated plist_dict_insert_item in favor of plist_dict_set_item | Nikias Bassen | 2 | -8/+8 | |
2014-03-19 | plist_dict_set_item: insert key/value pair if key not already present | Nikias Bassen | 1 | -10/+11 | |
2014-02-13 | Replace some LDADD references to use $(top_builddir) for distcheck | Martin Szulecki | 1 | -1/+1 | |
2014-02-13 | fix make distcheck | Nikias Bassen | 1 | -3/+3 | |
2014-02-06 | bplist: prevent segmentation fault in plist_from_bin() | Nikias Bassen | 1 | -0/+3 | |
2013-12-13 | bplist: make plist_utf8_to_utf16 static since it is only used internally | Nikias Bassen | 1 | -1/+1 | |
2013-12-13 | xplist: fix another compiler warning with cast | Nikias Bassen | 1 | -1/+1 | |
2013-12-13 | bytearray: silence compiler warning about pointer arithmetic with cast | Nikias Bassen | 1 | -1/+1 | |
2013-12-13 | base64: silence compiler warning by using correct type | Nikias Bassen | 1 | -1/+2 | |
2013-12-13 | xplist: silence compiler warning | Nikias Bassen | 1 | -1/+1 | |
2013-12-13 | xplist: fix shadowed variable declaration | Nikias Bassen | 1 | -3/+3 | |
2013-12-13 | change build system to autotools | Nikias Bassen | 2 | -59/+47 | |
2013-12-13 | add new plist_dict_merge() function | Nikias Bassen | 1 | -0/+27 | |
2013-11-12 | base64: get rid of strtok_r and use strspn+strcspn instead | Nikias Bassen | 1 | -13/+14 | |
strtok_r is not available on win32 and the designated strtok_s function is reported to not work on windows xp. Hence we use an easier an non-destructive implementation with strspn and strcspn to strip out the whitespace. | |||||
2013-11-12 | base64: fix compilation with win32 | Nikias Bassen | 1 | -0/+4 | |
this is a temporary fix, we'll replace strtok_r with a custom implementation soon. | |||||
2013-10-29 | fixed mavericks compile problem, return iterator of _map.end() instead of ↵ | Jim Koning | 1 | -1/+1 | |
iterator of NULL | |||||
2013-10-17 | UTF-16 surrogate pair fix | shane | 1 | -4/+37 | |
Handle UTF-16 surrogate pair conversion to/from UTF-8 | |||||
2013-10-09 | base64: use strtok_r instead of strtok to make sure we're thread safe | Nikias Bassen | 1 | -2/+3 | |
2013-05-30 | bplist: use __FLOAT_WORD_ORDER__ instead of __VFP_FP__ for floating point ↵ | Nikias Bassen | 1 | -1/+4 | |
endianness detection | |||||
2013-03-19 | C++: added support for PLIST_UID nodes (class Uid) | Nikias Bassen | 3 | -0/+81 | |
2013-03-07 | xml plists: make sure we don't produce <data/> if it's empty | Nikias Bassen | 1 | -0/+9 | |
2012-11-13 | C++ bindings: added support for PLIST_KEY nodes. | Nikias Bassen | 3 | -1/+84 | |