[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen master] init-xenstore-domain: cleanup all resources on a single exit path
commit f15348afe976d3c5e17fce2d2beb412bbae7475b Author: Ian Campbell <ian.campbell@xxxxxxxxxx> AuthorDate: Wed Feb 10 16:56:22 2016 +0000 Commit: Ian Campbell <ian.campbell@xxxxxxxxxx> CommitDate: Thu Feb 11 15:36:15 2016 +0000 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> 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; } -- generated by git-patchbot for /home/xen/git/xen.git#master _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |