]> xenbits.xensource.com Git - libvirt.git/commitdiff
virDomainHostdevDefFree: Don't leak privateData
authorMichal Privoznik <mprivozn@redhat.com>
Thu, 7 Jul 2016 09:37:36 +0000 (11:37 +0200)
committerMichal Privoznik <mprivozn@redhat.com>
Thu, 7 Jul 2016 10:03:46 +0000 (12:03 +0200)
After 27726d8c21 a privateData is allocated in
virDomainHostdevDefAlloc(). However, the counter part - freeing
them in Free() is missing which leads to the following memory
leak:

==6489== 24 bytes in 1 blocks are definitely lost in loss record 684 of 1,003
==6489==    at 0x4C2C070: calloc (vg_replace_malloc.c:623)
==6489==    by 0x54B7C94: virAllocVar (viralloc.c:560)
==6489==    by 0x5517BE6: virObjectNew (virobject.c:193)
==6489==    by 0x1B400121: qemuDomainHostdevPrivateNew (qemu_domain.c:798)
==6489==    by 0x5557B24: virDomainHostdevDefAlloc (domain_conf.c:2152)
==6489==    by 0x5575578: virDomainHostdevDefParseXML (domain_conf.c:12709)
==6489==    by 0x5582292: virDomainDefParseXML (domain_conf.c:16995)
==6489==    by 0x5583C98: virDomainDefParseNode (domain_conf.c:17470)
==6489==    by 0x5583B07: virDomainDefParse (domain_conf.c:17417)
==6489==    by 0x5583B95: virDomainDefParseFile (domain_conf.c:17441)
==6489==    by 0x55A3F24: virDomainObjListLoadConfig (virdomainobjlist.c:465)
==6489==    by 0x55A43E6: virDomainObjListLoadAllConfigs (virdomainobjlist.c:596)

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
src/conf/domain_conf.c

index f5e405defe865c56448e0084561616751507e9ec..cf5eb1da3212d7880f8d2355767d844eda4c1e89 100644 (file)
@@ -2214,6 +2214,9 @@ void virDomainHostdevDefClear(virDomainHostdevDefPtr def)
         }
         break;
     }
+
+    virObjectUnref(def->privateData);
+    def->privateData = NULL;
 }
 
 void virDomainTPMDefFree(virDomainTPMDefPtr def)