]> xenbits.xensource.com Git - people/liuw/libxenctrl-split/libvirt.git/commitdiff
vbox: Don't leak domain names in vboxListDefinedDomains
authorMatthias Bolte <matthias.bolte@googlemail.com>
Thu, 16 Dec 2010 22:33:14 +0000 (23:33 +0100)
committerMatthias Bolte <matthias.bolte@googlemail.com>
Fri, 17 Dec 2010 22:03:01 +0000 (23:03 +0100)
src/vbox/vbox_tmpl.c

index c283609343aead6d65912df04de7fc1433c044df..728c5014623432066b3fae64afb74dd729c84fbb 100644 (file)
@@ -3112,13 +3112,17 @@ static int vboxListDefinedDomains(virConnectPtr conn, char ** const names, int m
                     || (state > MachineState_LastOnline) ) {
                     machine->vtbl->GetName(machine, &machineNameUtf16);
                     VBOX_UTF16_TO_UTF8(machineNameUtf16, &machineName);
-                    if (!(names[j++] = strdup(machineName))) {
+                    names[j] = strdup(machineName);
+                    VBOX_UTF16_FREE(machineNameUtf16);
+                    VBOX_UTF8_FREE(machineName);
+                    if (!names[j]) {
                         virReportOOMError();
                         for ( ; j >= 0 ; j--)
                             VIR_FREE(names[j]);
                         ret = -1;
                         goto cleanup;
                     }
+                    j++;
                     ret++;
                 }
             }
@@ -3126,8 +3130,6 @@ static int vboxListDefinedDomains(virConnectPtr conn, char ** const names, int m
     }
 
 cleanup:
-    VBOX_UTF8_FREE(machineName);
-    VBOX_UTF16_FREE(machineNameUtf16);
     vboxArrayRelease(&machines);
     return ret;
 }