|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH] init-xenstore-domain: cleanup all resources on a single exit path
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>
---
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 |