]> xenbits.xensource.com Git - libvirt.git/commitdiff
xen: Fix unconditional freeing in xenDaemonListDefinedDomains()
authorMatthias Bolte <matthias.bolte@googlemail.com>
Wed, 25 Nov 2009 23:09:40 +0000 (00:09 +0100)
committerMatthias Bolte <matthias.bolte@googlemail.com>
Wed, 25 Nov 2009 23:09:40 +0000 (00:09 +0100)
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

index e370eb887ad44423ef283fc97832275311addc3b..4d9dcd13592398e2197eb50fb313e70e94ff87ae 100644 (file)
@@ -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;
 }
 
 /**