[libvirt] [PATCH] qemu_command: Fix memleak in qemuBuildFloppyCommandLineControllerOptions

Peter Krempa pkrempa at redhat.com
Thu Aug 16 10:30:35 UTC 2018


On Thu, Aug 16, 2018 at 12:22:24 +0200, Michal Privoznik wrote:
> Even though the buffer is passed to virCommand we still need to
> free it.

This is misleading. In fact we are NOT passing it to virCommandAddArgBuffer
in some cases as it would be properly freed in that case.

> ==191201== 1,010 bytes in 1 blocks are definitely lost in loss record 826 of 836
> ==191201==    at 0x4C2CE3F: malloc (vg_replace_malloc.c:298)
> ==191201==    by 0x4C2F1BF: realloc (vg_replace_malloc.c:785)
> ==191201==    by 0x5D39E82: virReallocN (viralloc.c:245)
> ==191201==    by 0x5D3E8F2: virBufferGrow (virbuffer.c:150)
> ==191201==    by 0x5D3E9C8: virBufferAdd (virbuffer.c:185)
> ==191201==    by 0x56EAC98: qemuBuildFloppyCommandLineControllerOptions (qemu_command.c:2162)
> ==191201==    by 0x56EB3E1: qemuBuildDisksCommandLine (qemu_command.c:2370)
> ==191201==    by 0x570055E: qemuBuildCommandLine (qemu_command.c:10315)
> ==191201==    by 0x575EA7F: qemuProcessCreatePretendCmd (qemu_process.c:6777)
> ==191201==    by 0x113DAB: testCompareXMLToArgv (qemuxml2argvtest.c:598)
> ==191201==    by 0x13A75B: virTestRun (testutils.c:180)
> ==191201==    by 0x138BE8: mymain (qemuxml2argvtest.c:2975)
> 
> Signed-off-by: Michal Privoznik <mprivozn at redhat.com>
> ---
>  src/qemu/qemu_command.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
> index ddb90895e0..96fc360f4a 100644
> --- a/src/qemu/qemu_command.c
> +++ b/src/qemu/qemu_command.c
> @@ -2225,6 +2225,7 @@ qemuBuildFloppyCommandLineControllerOptions(virCommandPtr cmd,
>      VIR_FREE(backendAlias);
>      VIR_FREE(backendStr);
>      VIR_FREE(bootindexStr);
> +    virBufferFreeAndReset(&fdc_opts);
>      return ret;

ACK if you fix the commit message
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20180816/4132691a/attachment-0001.sig>


More information about the libvir-list mailing list