2010/12/17 Eric Blake <eblake(a)redhat.com>:
On 12/17/2010 11:56 AM, Matthias Bolte wrote:
> ---
> src/vbox/vbox_tmpl.c | 8 +++++---
> 1 files changed, 5 insertions(+), 3 deletions(-)
>
> diff --git a/src/vbox/vbox_tmpl.c b/src/vbox/vbox_tmpl.c
> index c283609..728c501 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++;
ACK - since machineName is reused each iteration of the loop, it has to
be freed each iteration rather than once at the end.
Thanks, pushed.
Matthias