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

Wen Congyang wency at cn.fujitsu.com
Tue Jun 28 03:41:15 UTC 2011


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();
-- 
1.7.1




More information about the libvir-list mailing list