From 80d80fed9e7e4558f3894142870a0ebb5a0eb229 Mon Sep 17 00:00:00 2001 From: Matthias Bolte Date: Thu, 16 Dec 2010 23:33:14 +0100 Subject: [PATCH] vbox: Don't leak domain names in vboxListDefinedDomains --- src/vbox/vbox_tmpl.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/vbox/vbox_tmpl.c b/src/vbox/vbox_tmpl.c index c283609343..728c501462 100644 --- a/src/vbox/vbox_tmpl.c +++ b/src/vbox/vbox_tmpl.c @@ -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; }