From: Ian Campbell Date: Thu, 19 Aug 2010 13:40:24 +0000 (+0100) Subject: xl: free all data on exit from the domain monitor daemon. X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~11609 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=4440de5a7c9dcc1e7e8fffad8fac5bebc45064b2;p=xen.git xl: free all data on exit from the domain monitor daemon. [PATCH 01 of 16 libxl: autogenerate type definitions and destructor functions] Signed-off-by: Ian Campbell Signed-off-by: Ian Jackson --- diff --git a/tools/libxl/xl_cmdimpl.c b/tools/libxl/xl_cmdimpl.c index b5a1cddb47..92d847d3be 100644 --- a/tools/libxl/xl_cmdimpl.c +++ b/tools/libxl/xl_cmdimpl.c @@ -1557,9 +1557,11 @@ start: if (ret) { switch (handle_domain_death(&ctx, domid, &event, &d_config, &info)) { case 2: - if (!preserve_domain(&ctx, domid, &event, &d_config, &info)) + if (!preserve_domain(&ctx, domid, &event, &d_config, &info)) { /* If we fail then exit leaving the old domain in place. */ - exit(-1); + ret = -1; + goto out; + } /* Otherwise fall through and restart. */ case 1: @@ -1577,7 +1579,8 @@ start: goto start; case 0: LOG("Done. Exiting now"); - exit(0); + ret = 0; + goto out; } } break; @@ -1589,13 +1592,13 @@ start: libxl_free_event(&event); } - close(logfile); - exit(0); - error_out: if (domid) libxl_domain_destroy(&ctx, domid, 0); + out: + if (logfile != 2) + close(logfile); free_domain_config(&d_config);