libxl: fix segfault when detaching non-existant disk
authorGianni Tedesco <gianni.tedesco@citrix.com>
Tue, 27 Jul 2010 15:23:04 +0000 (16:23 +0100)
committerGianni Tedesco <gianni.tedesco@citrix.com>
Tue, 27 Jul 2010 15:23:04 +0000 (16:23 +0100)
Signed-off-by: Gianni Tedesco <gianni.tedesco@citrix.com>
Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
tools/libxl/libxl_utils.c

index 2a12d3f070e11f9d45c21fdc9ca41a2f9e08e826..0dc5bd72e4cda76e9f360d7a0f23d9d13c3c4cd2 100644 (file)
@@ -451,6 +451,8 @@ int libxl_devid_to_device_disk(struct libxl_ctx *ctx, uint32_t domid,
     }
 
     val = libxl_xs_read(ctx, XBT_NULL, libxl_sprintf(ctx, "%s/backend-id", diskpath));
+    if (!val)
+        return ERROR_FAIL;
     disk->backend_domid = strtoul(val, NULL, 10);
     disk->domid = domid;
     be_path = libxl_xs_read(ctx, XBT_NULL, libxl_sprintf(ctx, "%s/backend", diskpath));