[libvirt] [PATCH v2] parallels: Resolve some resource leaks
John Ferlan
jferlan at redhat.com
Wed Jan 23 13:54:56 UTC 2013
On 01/23/2013 08:19 AM, Peter Krempa wrote:
> On 01/22/13 21:10, John Ferlan wrote:
>> Be sure to VIR_FREE(accel) and moved virDomainVideoDefFree() within
>> no_memory
>> label to be consistent
>>
>> Resolve resource leak in parallelsApplyIfaceParams() when the 'oldnet' is
>> allocated locally. Also virCommandFree(cmd) as necessary.
>>
>> ---
>>
>> This is a followup patch to:
>>
>> https://www.redhat.com/archives/libvir-list/2013-January/msg01565.html
>>
>> Changes in v2:
>> Change label from cleanup to error
>> Add calls to virCommandFree()
>>
>> src/parallels/parallels_driver.c | 40
>> +++++++++++++++++++++++++---------------
>> 1 file changed, 25 insertions(+), 15 deletions(-)
>>
>
> [...]
>
>> }
>>
>> @@ -1901,15 +1902,24 @@ static int
>> parallelsApplyIfaceParams(parallelsDomObjPtr pdom,
>> is_changed = true;
>> }
>>
>> + if (create)
>> + VIR_FREE(oldnet);
>> +
>> if (!create && !is_changed) {
>> /* nothing changed - no need to run prlctl */
>> + virCommandFree(cmd);
>> return 0;
>> }
>>
>> if (virCommandRun(cmd, NULL))
>> - return -1;
>> + goto error;
>>
>> return 0;
>
> Um, I probably wasn't clear enough. The virCommand cmd needs to be freed
> also on success.
>
I had checked a couple of other callers "at random" and naturally the
ones I looked at didn't free it on success. The followup could be a bit
larger.
>> +error:
>
> I'd go for a cleanup label here and add a "ret" variable to indicate
> success or failure.
>
>> + if (create)
>> + VIR_FREE(oldnet);
>> + virCommandFree(cmd);
>> + return -1;
>> }
>>
>> static int
>>
>
> Peter
More information about the libvir-list
mailing list