From 774ce25067303111b6ada712339b7d47ad0f87af Mon Sep 17 00:00:00 2001 From: Nikias Bassen Date: Mon, 5 Apr 2010 20:01:14 +0200 Subject: plist_to_xml: copy terminating 0-byte given from xmlDocDumpMemory This makes it possible to process the resulting char* directly as a c-string without further copying. --- src/xplist.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/xplist.c b/src/xplist.c index f9289b0..3e9f043 100644 --- a/src/xplist.c +++ b/src/xplist.c @@ -377,8 +377,9 @@ void plist_to_xml(plist_t plist, char **plist_xml, uint32_t * length) xmlDocDumpMemory(plist_doc, &tmp, &size); if (size >= 0 && tmp) { - *plist_xml = (char*)malloc(size * sizeof(char)); - memcpy(*plist_xml, tmp, size); + /* make sure to copy the terminating 0-byte */ + *plist_xml = (char*)malloc((size+1) * sizeof(char)); + memcpy(*plist_xml, tmp, size+1); *length = size; xmlFree(tmp); tmp = NULL; -- cgit v1.1-32-gdbae