[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: [libvirt] [PATCH] fix error when parsing ppc64 models on x86 host



On 12/09/2011 07:27 AM, Stefan Berger wrote:
> When parsing ppc64 models on an x86 host an out-of-memory error message
> is displayed due
> to it checking for retcpus being NULL. Fix this by removing the check
> whether retcpus is NULL
> since we will realloc into this variable.
> Also in the X86 model parser display the OOM error at the location where
> it happens.
> 

> @@ -493,11 +497,6 @@ qemuCapsParsePPCModels(const char *outpu
>      const char **cpus = NULL;
>      int i;
> 
> -    if (!retcpus) {
> -        VIR_DEBUG("No retcpus specified");
> -        return -1;
> -    }

This hunk looks okay, but your patch is incomplete; later on, we have:

    if (retcount)
        *retcount = count;
    if (retcpus)
        *retcpus = cpus;
    return 0;

error:
    if (cpus) {
        for (i = 0; i < count; i++)
            VIR_FREE(cpus[i]);
    }
    VIR_FREE(cpus);
    return -1;

What this really needs to be is:

  if (retcpus) {
    *retcpus = cpus;
    cpus = NULL;
  }
  ret = 0;
cleanup:
  if (cpus) { ... }
  VIR_FREE(cpus);
  return ret;

so that we don't leak cpus when retcpus is NULL.  Looking forward to v2.

-- 
Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org

Attachment: signature.asc
Description: OpenPGP digital signature


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]