]> xenbits.xensource.com Git - libvirt.git/commitdiff
virDomainDefFree: Don't leak initenv name and value
authorMichal Privoznik <mprivozn@redhat.com>
Fri, 4 Aug 2017 13:06:39 +0000 (15:06 +0200)
committerMichal Privoznik <mprivozn@redhat.com>
Mon, 7 Aug 2017 08:44:05 +0000 (10:44 +0200)
When parsing boot options from domain XML in
virDomainDefParseBootOptions() initenv id stored to:

    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

index 640f29d3ed8a0160c8c5230ea8f4b1dbac52dfde..8168dc52fa756acf68b6e5d21287ecb20e334bcb 100644 (file)
@@ -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]);
+    }
     VIR_FREE(def->os.initdir);
     VIR_FREE(def->os.inituser);
     VIR_FREE(def->os.initgroup);