From: Matthias Bolte Date: Wed, 25 Nov 2009 23:09:40 +0000 (+0100) Subject: xen: Fix unconditional freeing in xenDaemonListDefinedDomains() X-Git-Tag: v0.7.5~162 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7cfbb17978c467625afab866b7a22119789abee0;p=thirdparty%2Flibvirt.git 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 --- 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; } /**