]> xenbits.xensource.com Git - people/julieng/xen-unstable.git/commitdiff
libxc: Free logger after printing error message
authorJason Andryuk <andryuk@aero.org>
Fri, 16 May 2014 20:41:17 +0000 (16:41 -0400)
committerIan Jackson <Ian.Jackson@eu.citrix.com>
Mon, 19 May 2014 11:28:38 +0000 (12:28 +0100)
On error, PERROR calls the already destroyed logger, which can segfault.
Re-order the calls, so the logger is still available.

Signed-off-by: Jason Andryuk <andryuk@aero.org>
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
tools/libxc/xc_private.c

index 0e1889258b51e0a5ae1d138e46430e086a0f8a0a..10e7e2008c3186c8c9e3ced59a01ddc9f0827333 100644 (file)
@@ -201,14 +201,14 @@ static int xc_interface_close_common(xc_interface *xch)
     if (!xch)
        return 0;
 
+    rc = xch->ops->close(xch, xch->ops_handle);
+    if (rc) PERROR("Could not close hypervisor interface");
+
     xc__hypercall_buffer_cache_release(xch);
 
     xtl_logger_destroy(xch->dombuild_logger_tofree);
     xtl_logger_destroy(xch->error_handler_tofree);
 
-    rc = xch->ops->close(xch, xch->ops_handle);
-    if (rc) PERROR("Could not close hypervisor interface");
-
     free(xch);
     return rc;
 }