From: Nehal J Wani Date: Fri, 13 Dec 2013 12:38:57 +0000 (+0530) Subject: Fix memory leak in virObjectEventCallbackListRemoveID() X-Git-Tag: CVE-2013-6436~31 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=34d52b3471a18c72b7a02e27d65857505d858a8e;p=thirdparty%2Flibvirt.git Fix memory leak in virObjectEventCallbackListRemoveID() While running objecteventtest, it was found that valgrind pointed out the following memory leak: ==13464== 5 bytes in 1 blocks are definitely lost in loss record 7 of 134 ==13464== at 0x4A0887C: malloc (vg_replace_malloc.c:270) ==13464== by 0x341F485E21: strdup (strdup.c:42) ==13464== by 0x4CAE28F: virStrdup (virstring.c:554) ==13464== by 0x4CF3CBE: virObjectEventCallbackListAddID (object_event.c:286) ==13464== by 0x4CF49CA: virObjectEventStateRegisterID (object_event.c:729) ==13464== by 0x4CF73FE: virDomainEventStateRegisterID (domain_event.c:1424) ==13464== by 0x4D7358F: testConnectDomainEventRegisterAny (test_driver.c:6032) ==13464== by 0x4D600C8: virConnectDomainEventRegisterAny (libvirt.c:19128) ==13464== by 0x402409: testDomainStartStopEvent (objecteventtest.c:232) ==13464== by 0x403451: virtTestRun (testutils.c:138) ==13464== by 0x402012: mymain (objecteventtest.c:395) ==13464== by 0x403AF2: virtTestMain (testutils.c:593) ==13464== --- diff --git a/src/conf/object_event.c b/src/conf/object_event.c index ec00aaf2c8..399927b49f 100644 --- a/src/conf/object_event.c +++ b/src/conf/object_event.c @@ -137,6 +137,9 @@ virObjectEventCallbackListRemoveID(virConnectPtr conn, if (freecb) (*freecb)(cbList->callbacks[i]->opaque); virObjectUnref(cbList->callbacks[i]->conn); + if (cbList->callbacks[i]->meta) + VIR_FREE(cbList->callbacks[i]->meta->name); + VIR_FREE(cbList->callbacks[i]->meta); VIR_FREE(cbList->callbacks[i]); if (i < (cbList->count - 1))