[libvirt] [PATCH] Fix a memory leak in cmdSchedInfoUpdateOne

Eric Blake eblake at redhat.com
Mon Aug 26 16:00:46 UTC 2013


On 08/26/2013 09:55 AM, Eric Blake wrote:

>> +++ b/tools/virsh-domain.c
>> @@ -4085,7 +4085,7 @@ cmdSchedInfoUpdateOne(vshControl *ctl,
>>                        int *nparams, int *maxparams,
>>                        const char *field, const char *value)
>>  {
>> -    virTypedParameterPtr param;
>> +    virTypedParameterPtr param = NULL;
>>      int ret = -1;
>>      size_t i;

Looking more at the code, param is only ever set to &(src_params[i]),
which means that it is NOT allocated locally, and therefore must NOT be
freed locally.

> Unfortunately, your patch is incorrect.  When applying it, and
> re-running 'make check', I get a failure:
> 
> FAIL: virsh-schedinfo
> =====================
> 
> ./virsh-schedinfo: line 46: 29400 Aborted                 (core dumped)

The test failure is because you are freeing an incorrect pointer.

> 
> Please fix and resubmit.

Even better, first prove that there is a memory leak (do you have a
valgrind trace to back up your claim?  What command line can be used to
demonstrate the leak?).  I didn't audit whether there is a leak
somewhere else, but just on inspection, if there IS a leak, it is NOT in
cmdSchedInfoUpdateOne(), but elsewhere.

-- 
Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 621 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20130826/ffa4a6be/attachment-0001.sig>


More information about the libvir-list mailing list