From 7cfbb17978c467625afab866b7a22119789abee0 Mon Sep 17 00:00:00 2001 From: Matthias Bolte Date: Thu, 26 Nov 2009 00:09:40 +0100 Subject: [PATCH] xen: Fix unconditional freeing in xenDaemonListDefinedDomains() Commit 790f0b3057787bb64da8c46c111ff8d3eff7b2af causes the contents of the names array to be freed even on success, resulting in no listing of defined but inactive Xen domains. Spotted by Jim Fehlig --- src/xen/xend_internal.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/xen/xend_internal.c b/src/xen/xend_internal.c index e370eb887a..4d9dcd1359 100644 --- a/src/xen/xend_internal.c +++ b/src/xen/xend_internal.c @@ -4696,12 +4696,17 @@ xenDaemonListDefinedDomains(virConnectPtr conn, char **const names, int maxnames break; } +cleanup: + sexpr_free(root); + return(ret); + error: for (i = 0; i < ret; ++i) VIR_FREE(names[i]); - sexpr_free(root); - return(ret); + ret = -1; + + goto cleanup; } /** -- GitLab