On 03/07/2014 02:46 AM, Michal Privoznik wrote:
> Signed-off-by: Michal Privoznik <[email protected]>
> ---
>  src/qemu/qemu_command.c      | 90 
> ++++++++++++++++++--------------------------
>  src/qemu/qemu_conf.c         |  8 +---
>  src/qemu/qemu_conf.h         |  2 +-
>  src/qemu/qemu_driver.c       | 10 ++---
>  src/qemu/qemu_monitor_json.c |  2 +-
>  src/qemu/qemu_monitor_text.c |  3 +-
>  6 files changed, 46 insertions(+), 69 deletions(-)
> 
> diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
> index 611d21d..648cf29 100644
> --- a/src/qemu/qemu_command.c
> +++ b/src/qemu/qemu_command.c
> @@ -10981,15 +10981,16 @@ qemuParseCommandLineCPU(virDomainDefPtr dom,
>                  }
>  
>                  if (j == dom->clock.ntimers) {
> -                    if (VIR_REALLOC_N(dom->clock.timers, j + 1) < 0 ||
> -                        VIR_ALLOC(dom->clock.timers[j]) < 0)
> +                    virDomainTimerDefPtr timer;
> +                    if (VIR_ALLOC(timer) < 0 ||
> +                        VIR_APPEND_ELEMENT_COPY(dom->clock.timers,
> +                                                dom->clock.ntimers, timer) < 
> 0)
>                          goto cleanup;

Memory leak if timer is allocated but the append fails.

> +++ b/src/qemu/qemu_driver.c
> @@ -4044,17 +4044,17 @@ static int qemuDomainHotplugVcpus(virQEMUDriverPtr 
> driver,
>                   */
>                  virDomainVcpuPinDefPtr vcpupin = NULL;
>  
> -                if (VIR_REALLOC_N(vm->def->cputune.vcpupin,
> -                                  vm->def->cputune.nvcpupin + 1) < 0)
> -                    goto cleanup;
> -
>                  if (VIR_ALLOC(vcpupin) < 0)
>                      goto cleanup;
>  
>                  vcpupin->cpumask = virBitmapNew(VIR_DOMAIN_CPUMASK_LEN);
>                  virBitmapCopy(vcpupin->cpumask, vm->def->cpumask);
>                  vcpupin->vcpuid = i;
> -                vm->def->cputune.vcpupin[vm->def->cputune.nvcpupin++] = 
> vcpupin;
> +                if (VIR_APPEND_ELEMENT_COPY(vm->def->cputune.vcpupin,
> +                                            vm->def->cputune.nvcpupin, 
> vcpupin) < 0) {
> +                    virBitmapFree(vcpupin->cpumask);
> +                    VIR_FREE(vcpupin);
> +                }

Missing a 'goto error;'.

ACK with those fixed.

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

Attachment: signature.asc
Description: OpenPGP digital signature

--
libvir-list mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/libvir-list

Reply via email to