From 7d949aa9c2ef31ff7e719aad88fe4ba6b7ee0ee9 Mon Sep 17 00:00:00 2001 From: Nehal J Wani Date: Sun, 16 Mar 2014 14:09:30 +0530 Subject: [PATCH] Fix memory leak in virDomainSnapshotDiskDefClear() While running domainsnapshotxml2xmltest, it was found that valgrind pointed out the following memory leak: ==32176== 42 (32 direct, 10 indirect) bytes in 1 blocks are definitely lost in loss record 42 of 66 ==32176== at 0x4A069EE: malloc (vg_replace_malloc.c:270) ==32176== by 0x4A06B62: realloc (vg_replace_malloc.c:662) ==32176== by 0x4C65A07: virReallocN (viralloc.c:243) ==32176== by 0x4C65B2E: virExpandN (viralloc.c:292) ==32176== by 0x4C65E30: virInsertElementsN (viralloc.c:434) ==32176== by 0x4CD71F3: virDomainDiskSourceDefParse (domain_conf.c:5078) ==32176== by 0x4CF6EF4: virDomainSnapshotDefParseNode (snapshot_conf.c:151) ==32176== by 0x4CF7314: virDomainSnapshotDefParseString (snapshot_conf.c:410) ==32176== by 0x41FB8D: testCompareXMLToXMLHelper (domainsnapshotxml2xmltest.c:100) ==32176== by 0x420FD1: virtTestRun (testutils.c:199) ==32176== by 0x41F859: mymain (domainsnapshotxml2xmltest.c:222) ==32176== by 0x42174D: virtTestMain (testutils.c:782) ==32176== ... and one more. --- src/conf/snapshot_conf.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/conf/snapshot_conf.c b/src/conf/snapshot_conf.c index d70d1767ab..546e5b3f5d 100644 --- a/src/conf/snapshot_conf.c +++ b/src/conf/snapshot_conf.c @@ -82,6 +82,9 @@ virDomainSnapshotDiskDefClear(virDomainSnapshotDiskDefPtr disk) { VIR_FREE(disk->name); VIR_FREE(disk->file); + while (disk->nhosts) + virDomainDiskHostDefClear(&disk->hosts[--disk->nhosts]); + VIR_FREE(disk->hosts); } void virDomainSnapshotDefFree(virDomainSnapshotDefPtr def) -- 2.39.5