[libvirt] [PATCH] Fix memory leak in virObjectEventCallbackListRemoveID()

Michal Privoznik mprivozn at redhat.com
Fri Dec 13 15:27:32 UTC 2013


On 13.12.2013 13:38, Nehal J Wani wrote:
> 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==
> 
> ---
>  Should we be introducing virObjectMetaFree() and/or virObjectEventCallbackFree() ?
>  src/conf/object_event.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/src/conf/object_event.c b/src/conf/object_event.c
> index ec00aaf..399927b 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))
> 

ACKed & pushed.

Michal




More information about the libvir-list mailing list