]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
Fix memory leak in virSCSIDeviceListDel()
authorNehal J Wani <nehaljw.kkd1@gmail.com>
Sat, 22 Feb 2014 20:00:53 +0000 (01:30 +0530)
committerJán Tomko <jtomko@redhat.com>
Wed, 26 Feb 2014 10:41:40 +0000 (11:41 +0100)
While running virscsitest, it was found that valgrind pointed out the following
memory leak:

==320== 5 bytes in 1 blocks are definitely lost in loss record 4 of 37
==320==    at 0x4A069EE: malloc (vg_replace_malloc.c:270)
==320==    by 0x3E6CE81171: strdup (strdup.c:43)
==320==    by 0x4CB28DF: virStrdup (virstring.c:554)
==320==    by 0x4CAC987: virSCSIDeviceSetUsedBy (virscsi.c:289)
==320==    by 0x402321: test2 (virscsitest.c:100)
==320==    by 0x403231: virtTestRun (testutils.c:199)
==320==    by 0x402121: mymain (virscsitest.c:180)
==320==    by 0x4039AD: virtTestMain (testutils.c:782)
==320==    by 0x3E6CE1ED1C: (below main) (libc-start.c:226)
==320==

Introduced by commit fd243fc.
Signed-off-by: Ján Tomko <jtomko@redhat.com>
src/util/virscsi.c

index acc38159894be2471225fceb5f3229ba3a02a2aa..2f469f2b458bd44959e3e95910410abf59b86b04 100644 (file)
@@ -435,6 +435,7 @@ virSCSIDeviceListDel(virSCSIDeviceListPtr list,
     for (i = 0; i < dev->n_used_by; i++) {
         if (STREQ_NULLABLE(dev->used_by[i], name)) {
             if (dev->n_used_by > 1) {
+                VIR_FREE(dev->used_by[i]);
                 VIR_DELETE_ELEMENT(dev->used_by, i, dev->n_used_by);
             } else {
                 tmp = virSCSIDeviceListSteal(list, dev);