[libvirt PATCH] qemu_snapshot: fix memory leak when reverting external snapshot

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> --- src/qemu/qemu_snapshot.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/qemu/qemu_snapshot.c b/src/qemu/qemu_snapshot.c index 09ec959f10..f5260c4a22 100644 --- a/src/qemu/qemu_snapshot.c +++ b/src/qemu/qemu_snapshot.c @@ -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); } } -- 2.45.1

On Mon, May 27, 2024 at 20:02:39 +0200, Pavel Hrdina wrote:
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> --- src/qemu/qemu_snapshot.c | 4 ++++ 1 file changed, 4 insertions(+)
diff --git a/src/qemu/qemu_snapshot.c b/src/qemu/qemu_snapshot.c index 09ec959f10..f5260c4a22 100644 --- a/src/qemu/qemu_snapshot.c +++ b/src/qemu/qemu_snapshot.c @@ -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); } }
Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
participants (2)
-
Jiri Denemark
-
Pavel Hrdina