[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH] init-xenstore-domain: cleanup all resources on a single exit path



On Wed, Feb 10, 2016 at 04:56:22PM +0000, Ian Campbell wrote:
> Previously xs_fd would be left open, which is CID 1055993 (previously
> partially fixed by 3bca826aae5eb).
> 
> Instead arrange for both success and error cases to cleanup everything
> on a single exit path instead of doing partial cleanup on the success
> path a few operations higher up.
> 
> Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx>

Acked-by: Wei Liu <wei.liu2@xxxxxxxxxx>

> ---
>  tools/helpers/init-xenstore-domain.c | 13 +++++++------
>  1 file changed, 7 insertions(+), 6 deletions(-)
> 
> diff --git a/tools/helpers/init-xenstore-domain.c 
> b/tools/helpers/init-xenstore-domain.c
> index 5c5af2d..909542b 100644
> --- a/tools/helpers/init-xenstore-domain.c
> +++ b/tools/helpers/init-xenstore-domain.c
> @@ -172,9 +172,6 @@ static int build(xc_interface *xch)
>          goto err;
>      }
>  
> -    xc_dom_release(dom);
> -    dom = NULL;
> -
>      rv = xc_domain_set_virq_handler(xch, domid, VIRQ_DOM_EXC);
>      if ( rv )
>      {
> @@ -188,14 +185,18 @@ static int build(xc_interface *xch)
>          goto err;
>      }
>  
> -    return 0;
> +    rv = 0;
>  
>  err:
>      if ( dom )
>          xc_dom_release(dom);
> -    if ( domid != ~0 )
> +    if ( xs_fd >= 0 )
> +        close(xs_fd);
> +
> +    /* if we failed then destroy the domain */
> +    if ( rv && domid != ~0 )
>          xc_domain_destroy(xch, domid);
> -    close(xs_fd);
> +
>      return rv;
>  }
>  
> -- 
> 2.1.4
> 

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.