[libvirt] [PATCH 2/6] qemu: Plug memory leak on qemuProcessWaitForMonitor() error path

Alex Jia ajia at redhat.com
Wed Nov 30 06:43:46 UTC 2011


On 11/30/2011 02:41 PM, Wen Congyang wrote:
> At 11/30/2011 02:32 PM, Alex Jia Write:
>> On 11/30/2011 02:20 PM, Wen Congyang wrote:
>>> At 11/30/2011 01:57 PM, ajia at redhat.com Write:
>>>> From: Alex Jia<ajia at redhat.com>
>>>>
>>>> Detected by Coverity. Leak introduced in commit 109efd7.
>>>>
>>>> Signed-off-by: Alex Jia<ajia at redhat.com>
>>>> ---
>>>>    src/qemu/qemu_process.c |    1 +
>>>>    1 files changed, 1 insertions(+), 0 deletions(-)
>>>>
>>>> diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
>>>> index 2563f97..f3f44ca 100644
>>>> --- a/src/qemu/qemu_process.c
>>>> +++ b/src/qemu/qemu_process.c
>>>> @@ -1224,6 +1224,7 @@ qemuProcessWaitForMonitor(struct qemud_driver*
>>>> driver,
>>>>
>>>>            if (VIR_ALLOC_N(buf, buf_size)<   0) {
>>>>                virReportOOMError();
>>>> +            VIR_FORCE_CLOSE(logfd);
>>>>                return -1;
>>> I think it is better to goto closelog
>> Yeah, I think so before, but 'closelog' label will free 'buf', in fact,
>> we haven't successfully allocate
> buf is inited to NULL, so it is safe to use VIR_FREE(buf)
Agree, will send v2 patch based on your advice.
>> memory to 'buf' variable, I'm not sure whether it is a issue. maybe, the
>> above is a simple way, otherwise, it should be better if we add a check
>> for 'buf' variable in 'closelog' label, it looks like this:
>> ...
>> if (buf)
>>       VIR_FREE(buf);
> If buf is NULL, VIR_FREE(bus) does nothing and is safe.
> If you add a check for 'buf', make syntax-check will fail.
Thanks.
> Thansk
> Wen Congyang
>
>> ...
>>
>> Chongyang, please correct me if I'm wrong :)
>>
>> Thanks,
>> Alex
>>> Thanks
>>> Wen Congyang
>>>
>>>>            }
>>




More information about the libvir-list mailing list