
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@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