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