]> xenbits.xensource.com Git - people/aperard/xen-arm.git/commitdiff
libxl: qemu trad logdirty: Tolerate ENOENT on ret path
authorIan Jackson <Ian.Jackson@eu.citrix.com>
Thu, 13 Dec 2012 11:44:01 +0000 (11:44 +0000)
committerIan Jackson <Ian.Jackson@eu.citrix.com>
Thu, 13 Dec 2012 11:44:01 +0000 (11:44 +0000)
It can happen in error conditions that lds->ret_path doesn't exist,
and libxl__xs_read_checked signals this by setting got_ret=NULL.  If
this happens, fail without crashing.

Reported-by: Alex Bligh <alex@alex.org.uk>,
Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
Committed-by: Ian Campbell <ian.campbell@citrix.com>
tools/libxl/libxl_dom.c

index 95da18e560b2e8b22a224a67a1f9140a469891f2..7586a6c97c1e9bd6facc18b33f2ebd71fbbab10b 100644 (file)
@@ -725,7 +725,7 @@ static void domain_suspend_switch_qemu_xen_traditional_logdirty
             rc = libxl__xs_read_checked(gc, t, lds->ret_path, &got_ret);
             if (rc) goto out;
 
-            if (strcmp(got, got_ret)) {
+            if (!got_ret || strcmp(got, got_ret)) {
                 LOG(ERROR,"controlling logdirty: qemu was already sent"
                     " command `%s' (xenstore path `%s') but result is `%s'",
                     got, lds->cmd_path, got_ret ? got_ret : "<none>");