|
[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
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |