[libvirt] [PATCH] virsh: fix memory leak in virsh when starting a guest with invalid fd

Jincheng Miao jmiao at redhat.com
Fri Feb 21 03:31:41 UTC 2014


----- Original Message -----
> On 02/20/2014 02:29 AM, Jincheng Miao wrote:
> > When start a guest with --pass-fd, if the argument of --pass-fd is invalid,
> > virsh will exit, but doesn't free the variable 'dom'.
> > 
> 
> > +++ b/tools/virsh-domain.c
> > @@ -3428,11 +3428,11 @@ cmdStart(vshControl *ctl, const vshCmd *cmd)
> >      if (virDomainGetID(dom) != (unsigned int)-1) {
> >          vshError(ctl, "%s", _("Domain is already active"));
> >          virDomainFree(dom);
> > -        return false;
> > +        goto cleanup;
> >      }
> 
> As is, this change ends up with a double-free calling virDomainFree(dom)
> twice.  Delete the one here, and let the cleanup label handle it instead.

Sorry, I've forget to delete this virDomainFree. Yes, my original meaning
is let the cleanup label handle it. 
Thanks for your review.

> 
> >  
> >      if (cmdStartGetFDs(ctl, cmd, &nfds, &fds) < 0)
> > -        return false;
> > +        goto cleanup;
> 
> at which point this is also correct.  I'll push the amended patch shortly.
> 
> --
> Eric Blake   eblake redhat com    +1-919-301-3266
> Libvirt virtualization library http://libvirt.org
> 
> 




More information about the libvir-list mailing list