From 9bccdb305845e31bcbc8c693e909cc5561f3dd03 Mon Sep 17 00:00:00 2001 From: Jonathan Beck Date: Wed, 3 Mar 2010 18:33:49 +0100 Subject: Copy xml buffer to malloced buffer to prevent free / xmlFree mixing. --- src/xplist.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/xplist.c b/src/xplist.c index 8b6a632..f9289b0 100644 --- a/src/xplist.c +++ b/src/xplist.c @@ -373,9 +373,16 @@ void plist_to_xml(plist_t plist, char **plist_xml, uint32_t * length) node_to_xml(plist, &root); - xmlDocDumpMemory(plist_doc, (xmlChar **) plist_xml, &size); - if (size >= 0) + xmlChar* tmp = NULL; + xmlDocDumpMemory(plist_doc, &tmp, &size); + if (size >= 0 && tmp) + { + *plist_xml = (char*)malloc(size * sizeof(char)); + memcpy(*plist_xml, tmp, size); *length = size; + xmlFree(tmp); + tmp = NULL; + } xmlFreeDoc(plist_doc); } -- cgit v1.1-32-gdbae