From: Jason Andryuk Date: Fri, 16 May 2014 20:41:17 +0000 (-0400) Subject: libxc: Free logger after printing error message X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~4988 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=86216963fd1d89883bb8120535704fdc79fdad50;p=xen.git libxc: Free logger after printing error message 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 Acked-by: Ian Jackson --- diff --git a/tools/libxc/xc_private.c b/tools/libxc/xc_private.c index 0e1889258b..10e7e2008c 100644 --- a/tools/libxc/xc_private.c +++ b/tools/libxc/xc_private.c @@ -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; }