aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGianni Tedesco <gianni.tedesco@citrix.com>2011-01-25 17:02:47 +0000
committerGianni Tedesco <gianni.tedesco@citrix.com>2011-01-25 17:02:47 +0000
commitb6c307fa49d929b65273793d7c5c89ef74972337 (patch)
tree4f56aad3b2eac727a572c9619c758817f856f0bb
parent326a7b743e87a3874578c28d2503a0dfa9852fa3 (diff)
downloadxen-b6c307fa49d929b65273793d7c5c89ef74972337.tar.gz
xen-b6c307fa49d929b65273793d7c5c89ef74972337.tar.bz2
xen-b6c307fa49d929b65273793d7c5c89ef74972337.zip
libxl: Check a domain exists before destroying it
Signed-off-by: Gianni Tedesco <gianni.tedesco@citrix.com> Acked-by: Ian Jackson <ian.jackson@eu.citrix.com> Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
-rw-r--r--tools/libxl/libxl.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c
index 018f2df286..c4477c7c52 100644
--- a/tools/libxl/libxl.c
+++ b/tools/libxl/libxl.c
@@ -662,10 +662,21 @@ int libxl_event_get_disk_eject_info(libxl_ctx *ctx, uint32_t domid, libxl_event
int libxl_domain_destroy(libxl_ctx *ctx, uint32_t domid, int force)
{
libxl__gc gc = LIBXL_INIT_GC(ctx);
+ libxl_dominfo dominfo;
char *dom_path;
char *vm_path;
int rc, dm_present;
+ rc = libxl_domain_info(ctx, &dominfo, domid);
+ switch(rc) {
+ case 0:
+ break;
+ case ERROR_INVAL:
+ LIBXL__LOG(ctx, LIBXL__LOG_ERROR, "non-existant domain %d", domid);
+ default:
+ return rc;
+ }
+
if (libxl__domain_is_hvm(ctx, domid)) {
dm_present = 1;
} else {