]> xenbits.xensource.com Git - libvirt.git/commitdiff
qemuDomainSnapshotCreateXML: Don't leak parsed snapshot definition
authorMichal Privoznik <mprivozn@redhat.com>
Tue, 14 May 2019 13:43:06 +0000 (15:43 +0200)
committerMichal Privoznik <mprivozn@redhat.com>
Tue, 14 May 2019 14:42:59 +0000 (16:42 +0200)
This function gets snapshot XML (provided by used) as an
argument. It parses it into a local variable @def and then sets
some more members (e.g. it creates a copy of live domain XML).
Then it proceeds to checking if snapshot XML is valid (e.g. it
contains as many disks as currently in the domain). If this fails
then the control jumps to endjob label and subsequently return
from the function. This is where AUTOFREE function for @def is
ran. Well, because the code says to run plain VIR_FREE() we leak
some memory because @def is actually an object and therefore
it should have been declared as AUTOUNREF.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
src/qemu/qemu_driver.c

index f01282a0374737528d34f27cfc83fdb869bca2da..0a425b82e5a7dea683422a80e72fc56b7f014b5a 100644 (file)
@@ -15563,7 +15563,7 @@ qemuDomainSnapshotCreateXML(virDomainPtr domain,
     virCapsPtr caps = NULL;
     qemuDomainObjPrivatePtr priv;
     virDomainSnapshotState state;
-    VIR_AUTOFREE(virDomainSnapshotDefPtr) def = NULL;
+    VIR_AUTOUNREF(virDomainSnapshotDefPtr) def = NULL;
 
     virCheckFlags(VIR_DOMAIN_SNAPSHOT_CREATE_REDEFINE |
                   VIR_DOMAIN_SNAPSHOT_CREATE_CURRENT |