[libvirt] [PATCHv2] conf: Fix memory leaks in virStoragePoolDefParseSource

Alex Jia ajia at redhat.com
Thu May 10 01:30:01 UTC 2012


Thanks and pushed now.

----- Original Message -----
From: "Eric Blake" <eblake at redhat.com>
To: "Alex Jia" <ajia at redhat.com>
Cc: libvir-list at redhat.com
Sent: Wednesday, May 9, 2012 11:03:50 PM
Subject: Re: [libvirt] [PATCHv2] conf: Fix memory leaks in virStoragePoolDefParseSource

On 05/09/2012 04:49 AM, Alex Jia wrote:
> Detected by valgrind. Leaks are introduced in commit 122fa379.
> 
> src/conf/storage_conf.c: fix memory leaks.
> 
> How to reproduce?
> $ make && make -C tests check TESTS=storagepoolxml2xmltest
> $ cd tests && valgrind -v --leak-check=full ./storagepoolxml2xmltest
> 
> actual result:
> ==28571== LEAK SUMMARY:
> ==28571==    definitely lost: 40 bytes in 5 blocks
> ==28571==    indirectly lost: 0 bytes in 0 blocks
> ==28571==      possibly lost: 0 bytes in 0 blocks
> ==28571==    still reachable: 1,054 bytes in 21 blocks
> ==28571==         suppressed: 0 bytes in 0 blocks
> 
> Signed-off-by: Alex Jia <ajia at redhat.com>
> ---
>  src/conf/storage_conf.c |    1 +
>  1 files changed, 1 insertions(+), 0 deletions(-)
> 
> diff --git a/src/conf/storage_conf.c b/src/conf/storage_conf.c
> index 0b34f28..188af6d 100644
> --- a/src/conf/storage_conf.c
> +++ b/src/conf/storage_conf.c
> @@ -465,6 +465,7 @@ virStoragePoolDefParseSource(xmlXPathContextPtr ctxt,
>          }
>      }
>  
> +    VIR_FREE(nodeset);
>      source->initiator.iqn = virXPathString("string(./initiator/iqn/@name)", ctxt);
>  
>      nsource = virXPathNodeSet("./device", ctxt, &nodeset);

ACK; this properly frees the old use of nodeset before reusing it for a
new use.

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




More information about the libvir-list mailing list