summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2016-05-12Add plist_is_binary()Gravatar Christophe Fergeau2-0/+22
It can be useful if one needs to know what type of plist a memory buffer contains.
2016-05-12Allow to run autogen.sh outside $top_srcdirGravatar Christophe Fergeau1-11/+18
This makes it more convenient to do builds out of the source dir.
2016-05-12bplist: Speed up plist_to_bin conversion for large plistsGravatar Nikias Bassen3-9/+12
Using a better hashing algorithm and a larger hash table the conversion is A LOT faster when processing large plists. Thanks to Xiao Deng for reporting this issue and suggesting a fix.
2016-04-20Move libxml cleanup code to a plist_cleanup methodGravatar Frederik Carlier3-17/+31
2016-04-20cython: Fix module build with libplist already installedGravatar Elan Ruusamäe1-1/+1
see https://github.com/pld-linux/libplist/commit/a4a4e4b04caef3f9875b598d64ffb1fb388e699e
2015-12-07Node.cpp: let plist_t operations free _node when in a container.Gravatar Aaron Burghardt1-1/+6
Fixes libimobiledevice/libplist#50.
2015-11-13xplist: Get rid of setlocale() and use custom function to print floating ↵Gravatar Nikias Bassen1-14/+32
point values
2015-02-05test: Add missing .test filesGravatar Nikias Bassen3-0/+35
2015-02-05test: Add more test cases covering binary plist issuesGravatar Nikias Bassen5-2/+32
2015-02-05bplist: Refactor binary plist parsing in a recursive wayGravatar Nikias Bassen1-209/+167
2015-01-31bplist: Plug memory leaks caused by unused (and unfreed) bufferGravatar Nikias Bassen1-5/+0
When parsing binary plists with BPLIST_DICT or BPLIST_ARRAY nodes that are referenced multiple times in a particular file, a buffer was allocated that was not used, and also not freed, thus causing memory leaks.
2015-01-31bplist: Fix possible crash in plist_from_bin() caused by access to already ↵Gravatar Nikias Bassen1-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-29m4: Acutally report include path check before doing the checkGravatar Martin Szulecki1-1/+1
2015-01-29m4: Use python-config if available to fix Python 3 support on newer distrosGravatar Martin Szulecki1-0/+6
2015-01-29plistutil: Plug some memory leaksGravatar Nikias Bassen1-2/+6
2015-01-29plistutil: Use static buffer for stat()Gravatar Nikias Bassen1-6/+4
2015-01-29Move pkg-config file into src directoryGravatar Martin Szulecki5-5/+5
2015-01-29Improve maintainability and Requires of pkg-config files slightlyGravatar Martin Szulecki2-9/+7
2015-01-28Require autoconf 2.64+ to use package bugreport and project URL in AC_INITGravatar Martin Szulecki1-2/+2
2015-01-28Update README with new git URL, IRC and twitter profileGravatar Martin Szulecki1-2/+5
2015-01-23xplist: Plug memory leak by cleaning up libxml2's parser after useGravatar Martin Szulecki1-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-23plistutil: Improve error message for a human if input file reading failedGravatar Martin Szulecki1-1/+1
2015-01-23plistutil: Cleanup code style a bit and remove obsolete extra headerGravatar Martin Szulecki3-102/+79
2015-01-23Update and correct some copyright header commentsGravatar Martin Szulecki3-3/+8
2015-01-23xplist: Fix limited but possible XXE security vulnerability with XML plistsGravatar Martin Szulecki1-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-23Add generation of documentation using "make docs"Gravatar Martin Szulecki2-2/+10
2015-01-11Pass flag '-avoid-version' to libtool for libplist++ in addition to libplist ↵Gravatar Aaron Burghardt1-0/+1
for WIN32.
2014-10-22Workaround autoconf bug and ensure a C++ compiler is mandatoryGravatar Martin Szulecki1-0/+10
If AC_PROG_CXX is used after AC_PROG_CC, it will return "g++" even if no C++ compiler is installed. However, as we need one, testing compiling a program will make configure fail if indeed no C++ compiler is installed.
2014-10-14Post-release version bump to 1.13Gravatar Martin Szulecki1-1/+1
2014-10-14Add "check-news" automake option to ensure correct NEWS file on releases1.12Gravatar Martin Szulecki1-1/+1
2014-10-14cython: Enforce default symbol visibility to make bindings loadableGravatar Martin Szulecki1-1/+1
2014-10-14cython: Use output variables instead of relative paths in MakefileGravatar Martin Szulecki1-2/+2
2014-10-14Update NEWS with latest changesGravatar Martin Szulecki1-0/+24
2014-10-14Bump so name correctly as some ABI symbols were removedGravatar Martin Szulecki1-1/+1
2014-10-09bplist: Fix plist_from_bin() changing value nodes to key nodes in dictionariesGravatar Martin Szulecki1-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-03Bump so revision due to ABI changesGravatar Nikias Bassen1-1/+1
2014-10-03Drop src/common.h and use byte order macros from config.h directlyGravatar Nikias Bassen3-33/+15
2014-10-03Avoid exporting non-public symbolsGravatar Nikias Bassen12-143/+141
2014-09-26plist.h: Move deprecation marker before function declaration to make ↵Gravatar Nikias Bassen1-1/+2
non-gcc/clang compilers happy
2014-09-26C++: Add missing cstddef include to Node.hGravatar Nikias Bassen1-0/+1
2014-09-23bplist: Prevent crash in plist_from_bin() when parsing unusually structured ↵Gravatar Nikias Bassen1-1/+1
binary plist
2014-09-20C++: Make sure String::GetValue() and Key::GetValue() don't crash with NULL ↵Gravatar Nikias Bassen2-4/+14
strings
2014-09-20Added const to Array.GetSize(), and to 3 Node methods.Gravatar Aaron Burghardt4-9/+9
2014-09-20Change Clone() to be const, which required constructors with const ↵Gravatar Aaron Burghardt22-65/+71
references and a const GetValue().
2014-08-25Fixed memory leaks in new_xml_plist() and parse_real_node().Gravatar Aaron Burghardt2-3/+1
2014-08-06Properly rename header guards according to C++ standardGravatar Nikias Bassen12-36/+36
2014-08-06bplist: Silence compiler warning about 'always true' comparison due to type ↵Gravatar Nikias Bassen1-2/+6
mismatch
2014-07-30cython: Fix compiler warning by actually using the Uid factoryGravatar Martin Szulecki1-0/+2
2014-07-30cython: Replace old Pyrex for-from loop with normal one to fix compiler warningGravatar Martin Szulecki1-1/+1
2014-07-30cython: Fix Python library import fail due to removed 'plist_set_type' symbolGravatar Martin Szulecki1-4/+1