[libvirt] [PATCH] virQEMUCapsReset: also clear out hostCPUModel

Jiri Denemark jdenemar at redhat.com
Mon Oct 24 18:30:01 UTC 2016


On Mon, Oct 24, 2016 at 17:55:06 +0200, Ján Tomko wrote:
> After succesfully reading an outdated caps cache from disk,
> calling virQEMUCapsReset did not properly clear out the host
> CPU model. This lead to a memory leak when the host CPU model
> pointer was overwritten later in virQEMUCapsNewForBinaryInternal.

Well, hostCPUModel is not stored in the cache; it's (going to be)
computed from other fields in the cache so it will still be NULL after
reading caps cache.

> Introduced by commit 68c70118.
> ---
>  src/qemu/qemu_capabilities.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
> index 9132469..130f1db 100644
> --- a/src/qemu/qemu_capabilities.c
> +++ b/src/qemu/qemu_capabilities.c
> @@ -3430,6 +3430,9 @@ virQEMUCapsReset(virQEMUCapsPtr qemuCaps)
>  
>      VIR_FREE(qemuCaps->gicCapabilities);
>      qemuCaps->ngicCapabilities = 0;
> +
> +    virCPUDefFree(qemuCaps->hostCPUModel);
> +    qemuCaps->hostCPUModel = NULL;
>  }

But it still makes sense to free it here. ACK.

Jirka




More information about the libvir-list mailing list