From f91d103e74d4c2efa60fb42b6e9d530a92838f8e Mon Sep 17 00:00:00 2001 From: Andrew Cooper Date: Wed, 10 Jun 2020 12:40:04 +0100 Subject: [PATCH] tools: fix error path of xendevicemodel_open() c/s 6902cb00e03 "tools/libxendevicemodel: extract functions and add a compat layer" introduced calls to both xencall_open() and osdep_xendevicemodel_open() but failed to fix up the error path. c/s f68c7c618a3 "libs/devicemodel: free xencall handle in error path in _open()" fixed up the xencall_open() aspect of the error path (missing the osdep_xendevicemodel_open() aspect), but positioned the xencall_close() incorrectly, creating the same pattern proved to be problematic by c/s 30a72f02870 "tools: fix error path of xenhypfs_open()". Reposition xtl_logger_destroy(), and introduce the missing osdep_xendevicemodel_close(). Fixes: 6902cb00e03 ("tools/libxendevicemodel: extract functions and add a compat layer") Fixes: f68c7c618a3 ("libs/devicemodel: free xencall handle in error path in _open()") Backport: 4.9+ Signed-off-by: Andrew Cooper Reviewed-by: Juergen Gross Release-acked-by: Paul Durrant Reviewed-by: Ian Jackson --- tools/libs/devicemodel/core.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tools/libs/devicemodel/core.c b/tools/libs/devicemodel/core.c index db501d9e80..4d4063956d 100644 --- a/tools/libs/devicemodel/core.c +++ b/tools/libs/devicemodel/core.c @@ -67,9 +67,10 @@ xendevicemodel_handle *xendevicemodel_open(xentoollog_logger *logger, return dmod; err: - xtl_logger_destroy(dmod->logger_tofree); + osdep_xendevicemodel_close(dmod); xentoolcore__deregister_active_handle(&dmod->tc_ah); xencall_close(dmod->xcall); + xtl_logger_destroy(dmod->logger_tofree); free(dmod); return NULL; } -- 2.30.2