[libvirt] [PATCH] qemu: fix memory leak in virDomainGetVcpus

Laine Stump laine at laine.org
Mon Apr 2 05:33:23 UTC 2012


https://bugzilla.redhat.com/show_bug.cgi?id=808979

The leak is really in virProcessInfoGetAffinity, as shown in the
valgrind output given in the above bug report - it calls CPU_ALLOC(),
but then fails to call CPU_FREE().

This leak has existed in every version of libvirt since 0.7.5.
---
 src/util/processinfo.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/src/util/processinfo.c b/src/util/processinfo.c
index b1b1737..af19723 100644
--- a/src/util/processinfo.c
+++ b/src/util/processinfo.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2009-2010 Red Hat, Inc.
+ * Copyright (C) 2009-2010, 2012 Red Hat, Inc.
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -140,6 +140,7 @@ realloc:
     for (i = 0 ; i < maxcpu ; i++)
         if (CPU_ISSET_S(i, masklen, mask))
             VIR_USE_CPU(map, i);
+    CPU_FREE(mask);
 # else
     /* Legacy method uses a fixed size cpu mask, only allows upto 1024 cpus */
     cpu_set_t mask;
-- 
1.7.7.6




More information about the libvir-list mailing list