]> xenbits.xensource.com Git - libvirt.git/commitdiff
qemu_snapshot: fix memory leak when reverting external snapshot
authorPavel Hrdina <phrdina@redhat.com>
Mon, 27 May 2024 17:14:00 +0000 (19:14 +0200)
committerPavel Hrdina <phrdina@redhat.com>
Wed, 29 May 2024 13:23:55 +0000 (15:23 +0200)
The code cleaning up virStorageSource doesn't free data allocated by
virStorageSourceInit() so we need to call virStorageSourceDeinit()
explicitly.

Fixes: 8e664737813378d2a1bdeacc2ca8e942327e2cab
Resolves: https://issues.redhat.com/browse/RHEL-33044
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
src/qemu/qemu_snapshot.c

index 09ec959f10fe13d88ccc595d3ce85f9575efa82b..f5260c4a2240f28434ebcf6de491ddf2915303f1 100644 (file)
@@ -2260,6 +2260,8 @@ qemuSnapshotRevertExternalFinish(virDomainObj *vm,
                          snapdisk->src->path);
             }
 
+            virStorageSourceDeinit(snapdisk->src);
+
             virDomainSnapshotDiskDefClear(snapdisk);
         }
 
@@ -2277,6 +2279,8 @@ qemuSnapshotRevertExternalFinish(virDomainObj *vm,
                 VIR_WARN("Failed to remove snapshot image '%s'",
                          snapdisk->src->path);
             }
+
+            virStorageSourceDeinit(snapdisk->src);
         }
     }