[libvirt] [PATCH] virsh.c: avoid leak on OOM error path

Daniel Veillard veillard at redhat.com
Fri Feb 19 17:19:16 UTC 2010


On Fri, Feb 19, 2010 at 06:09:13PM +0100, Jim Meyering wrote:
> No one really cares if we leak memory while dying, but who knows...

  especially in virsh ...

> freeing that buffer may let us go down more gracefully.
> 
> FYI, the leak is triggered when virFileReadAll succeeds
> (it allocates "buffer"), yet xmlNewDoc fails:
> 
>     if (virFileReadAll(from, VIRSH_MAX_XML_FILE, &buffer) < 0)
>         return FALSE;
> 
>     doc = xmlNewDoc(NULL);
>     if (doc == NULL)
>         goto no_memory;
> 
> 
> >From 03c7a44e3d5b2e7c992bebc98fc8c6a7bf63881e Mon Sep 17 00:00:00 2001
> From: Jim Meyering <meyering at redhat.com>
> Date: Fri, 19 Feb 2010 18:03:41 +0100
> Subject: [PATCH] virsh.c: avoid leak on OOM error path
> 
> * tools/virsh.c (cmdCPUBaseline): Also free "buffer" upon OOM.
> ---
>  tools/virsh.c |    1 +
>  1 files changed, 1 insertions(+), 0 deletions(-)
> 
> diff --git a/tools/virsh.c b/tools/virsh.c
> index dd916f3..8756a7a 100644
> --- a/tools/virsh.c
> +++ b/tools/virsh.c
> @@ -7139,6 +7139,7 @@ cleanup:
>      return ret;
> 
>  no_memory:
> +    VIR_FREE(buffer);
>      vshError(ctl, "%s", _("Out of memory"));
>      ret = FALSE;
>      return ret;

ACK

Daniel

-- 
Daniel Veillard      | libxml Gnome XML XSLT toolkit  http://xmlsoft.org/
daniel at veillard.com  | Rpmfind RPM search engine http://rpmfind.net/
http://veillard.com/ | virtualization library  http://libvirt.org/




More information about the libvir-list mailing list