From 27d2d99fe75299cccaf121db140b2913dc630b96 Mon Sep 17 00:00:00 2001 From: John Ferlan Date: Thu, 8 Oct 2015 16:24:47 -0400 Subject: [PATCH] storage: Fix a resource leak in storageVolCreateXML Commit id '1b5685da' refactored the code to move buildvoldef inside the buildVol conditional; however, the VIR_FREE of the memory was left only when 'buildret' failed, thus we're leaking memory. Signed-off-by: John Ferlan --- src/storage/storage_driver.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/storage/storage_driver.c b/src/storage/storage_driver.c index 0a7ebcc1c0..0aa2d6e269 100644 --- a/src/storage/storage_driver.c +++ b/src/storage/storage_driver.c @@ -1859,6 +1859,8 @@ storageVolCreateXML(virStoragePoolPtr obj, buildret = backend->buildVol(obj->conn, pool, buildvoldef, flags); + VIR_FREE(buildvoldef); + storageDriverLock(); virStoragePoolObjLock(pool); storageDriverUnlock(); @@ -1867,7 +1869,6 @@ storageVolCreateXML(virStoragePoolPtr obj, pool->asyncjobs--; if (buildret < 0) { - VIR_FREE(buildvoldef); storageVolDeleteInternal(volobj, backend, pool, voldef, 0, false); voldef = NULL;