diff --git a/src/xen/xend_internal.c b/src/xen/xend_internal.c index 9d61fcadc64acba6484810a6d4766e1aab70edc6..01e74bdd5c5653869389e31c419b73a7f9202280 100644 --- a/src/xen/xend_internal.c +++ b/src/xen/xend_internal.c @@ -2897,7 +2897,7 @@ xenDaemonListDefinedDomains(virConnectPtr conn, { struct sexpr *root = NULL; size_t i; - int ret = -1; + int ret = 0; struct sexpr *_for_i, *node; if (maxnames == 0) @@ -2920,16 +2920,15 @@ xenDaemonListDefinedDomains(virConnectPtr conn, break; } - ret = 0; - cleanup: sexpr_free(root); return ret; error: - for (i = 0; ret != -1 && i < ret; ++i) + for (i = 0; i < ret; ++i) VIR_FREE(names[i]); + ret = -1; goto cleanup; }