From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jason Andryuk Subject: [PATCH] libxc: Free logger after printing error message Date: Fri, 16 May 2014 16:41:17 -0400 Message-ID: <1400272877-11767-1-git-send-email-andryuk@aero.org> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: xen-devel@lists.xen.org Cc: Jason Andryuk , Ian Jackson , Ian Campbell , Stefano Stabellini List-Id: xen-devel@lists.xenproject.org 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 --- tools/libxc/xc_private.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tools/libxc/xc_private.c b/tools/libxc/xc_private.c index 0e18892..10e7e20 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; } -- 1.8.3.1