[libvirt] [PATCH 1/8] virDomainDefFree: Don't leak initenv name and value

Peter Krempa pkrempa at redhat.com
Fri Aug 4 14:53:13 UTC 2017


On Fri, Aug 04, 2017 at 16:22:29 +0200, Michal Privoznik wrote:
> When parsing boot options from domain XML in
> virDomainDefParseBootOptions() initenv id stored to:

In this function there's a very shady approach to extract the contents
of the XML element.

> 
>     def->os.initenv[i]->name
>     def->os.initenv[i]->value
> 
> But these are never freed.
> 
> Signed-off-by: Michal Privoznik <mprivozn at redhat.com>
> ---
>  src/conf/domain_conf.c | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
> index 640f29d3e..8168dc52f 100644
> --- a/src/conf/domain_conf.c
> +++ b/src/conf/domain_conf.c
> @@ -2931,8 +2931,11 @@ void virDomainDefFree(virDomainDefPtr def)
>      for (i = 0; def->os.initargv && def->os.initargv[i]; i++)
>          VIR_FREE(def->os.initargv[i]);
>      VIR_FREE(def->os.initargv);
> -    for (i = 0; def->os.initenv && def->os.initenv[i]; i++)
> +    for (i = 0; def->os.initenv && def->os.initenv[i]; i++) {
> +        VIR_FREE(def->os.initenv[i]->name);
> +        VIR_FREE(def->os.initenv[i]->value);
>          VIR_FREE(def->os.initenv[i]);

ACK to this though
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20170804/61d207f2/attachment-0001.sig>


More information about the libvir-list mailing list