[libvirt] [PATCH] Fix memory leak in virDomainVcpuPinDel()

Michal Privoznik mprivozn at redhat.com
Tue Jun 28 10:38:39 UTC 2011


On 28.06.2011 05:41, Wen Congyang wrote:
> virDomainVcpuPinDefFree() does not free def->cputune.vcpupin if nvcpupin
> is 0, and does not set def->cputune.vcpupin to NULL.
> 
> If we set nvcpupin to 0 but do not free vcpupin, vcpupin will not be freed
> when vm->def is freed.
> 
> Use VIR_FREE() instead of virDomainVcpuPinDefFree() to free the memory
> and set def->cputune.vcpupint to NULL.
> 
> ---
>  src/conf/domain_conf.c |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
> 
> diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
> index 60e0318..f9bf51e 100644
> --- a/src/conf/domain_conf.c
> +++ b/src/conf/domain_conf.c
> @@ -8263,7 +8263,7 @@ virDomainVcpuPinDel(virDomainDefPtr def, int vcpu)
>          return 0;
>  
>      if (--def->cputune.nvcpupin == 0) {
> -        virDomainVcpuPinDefFree(def->cputune.vcpupin, 0);
> +        VIR_FREE(def->cputune.vcpupin);
>      } else {
>          if (VIR_REALLOC_N(def->cputune.vcpupin, def->cputune.nvcpupin) < 0) {
>              virReportOOMError();

ACK

Michal




More information about the libvir-list mailing list