From 6a781e6f69cb820347bae02a1f947e6b01ccaa47 Mon Sep 17 00:00:00 2001 From: Nikias Bassen Date: Sat, 31 Jan 2015 20:21:07 +0100 Subject: bplist: Plug memory leaks caused by unused (and unfreed) buffer 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. --- src/bplist.c | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/bplist.c b/src/bplist.c index cbe9481..5ddca26 100644 --- a/src/bplist.c +++ b/src/bplist.c @@ -584,14 +584,9 @@ static void* copy_plist_data(const void* src) dstdata->strval = strdup(srcdata->strval); break; case PLIST_DATA: - case PLIST_ARRAY: dstdata->buff = (uint8_t*) malloc(sizeof(uint8_t) * srcdata->length); memcpy(dstdata->buff, srcdata->buff, sizeof(uint8_t) * srcdata->length); break; - case PLIST_DICT: - dstdata->buff = (uint8_t*) malloc(sizeof(uint8_t) * srcdata->length * 2); - memcpy(dstdata->buff, srcdata->buff, sizeof(uint8_t) * srcdata->length * 2); - break; case PLIST_UID: dstdata->intval = srcdata->intval; break; -- cgit v1.1-32-gdbae