- qemuDomainSetThrottleGroup: Enforce non-zero 'groupname' string length (RHEL-141820) - qemuDomainSetBlockIoTuneField: Move setting of 'group_name' out of the loop (RHEL-141820) - qemuDomainSetThrottleGroup: Always honour thottle group name passed as argument (RHEL-141820) - qemuDomainSetThrottleGroup: Don't put group name into the 'tunable' event twice (RHEL-141820) - qemuSnapshotDiskHasBackingDisk: Avoid call of virStorageSourceIsSameLocation with NULL argument (RHEL-144089) - qemuSnapshotUpdateBackingStore: Remove stale comment (RHEL-144089) - qemuSnapshotDiskHasBackingDisk: Use proper 'max_depth' when calling 'virStorageSourceGetMetadata' (RHEL-144089) - virDomainSnapshotDefAssignExternalNames: Improve error message (RHEL-144089) - qemuSnapshotUpdateBackingStore: Retry as curent user if qemu-img fails (RHEL-144089) - esx: Debug URL just before opening with curl (RHEL-138300) - esx: Abstract all URL-creation code into one function (RHEL-138300) - esx: Switch to creating URLs using virURIFormat (RHEL-138300) - esx_util: Introduce esxUtil_EscapeInventoryObject() (RHEL-140196) - esx: URI encode inventory objects twice (RHEL-140196) Resolves: RHEL-138300, RHEL-140196, RHEL-141820, RHEL-144089
49 lines
2.1 KiB
Diff
49 lines
2.1 KiB
Diff
From 744a5361793546bed7976acebed669b1928e8c9d Mon Sep 17 00:00:00 2001
|
|
Message-ID: <744a5361793546bed7976acebed669b1928e8c9d.1769699749.git.jdenemar@redhat.com>
|
|
From: Peter Krempa <pkrempa@redhat.com>
|
|
Date: Fri, 23 Jan 2026 08:42:50 +0100
|
|
Subject: [PATCH] qemuSnapshotDiskHasBackingDisk: Avoid call of
|
|
virStorageSourceIsSameLocation with NULL argument
|
|
|
|
When the 'backingStore' pointer is not populated the function calls
|
|
'virStorageSourceGetMetadata' to try to populate it but if the on-disk
|
|
metadata doesn't have a backing image (e.g. if it's the 'base' image of
|
|
the chain) the 'backingStore' or the metadata fetcher fails the pointer
|
|
will still be NULL.
|
|
|
|
The function then calls 'virStorageSourceIsSameLocation' but the
|
|
internal functions for dealing with storage sources don't handle NULL
|
|
gracefully.
|
|
|
|
Since the code calling 'qemu-img' based on the data detected here
|
|
doesn't actually raise errors if the operations fail there's no point
|
|
in raising errors here either.
|
|
|
|
Closes: https://gitlab.com/libvirt/libvirt/-/issues/844
|
|
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
|
|
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
|
|
(cherry picked from commit b43aee9cc904961e0f18156c3c84a3e460bdb7be)
|
|
|
|
https://issues.redhat.com/browse/RHEL-144089 [rhel-10.2]
|
|
https://issues.redhat.com/browse/RHEL-144090 [rhel-9.8]
|
|
---
|
|
src/qemu/qemu_snapshot.c | 3 ++-
|
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/src/qemu/qemu_snapshot.c b/src/qemu/qemu_snapshot.c
|
|
index 302775af92..dfc3f449e3 100644
|
|
--- a/src/qemu/qemu_snapshot.c
|
|
+++ b/src/qemu/qemu_snapshot.c
|
|
@@ -3135,7 +3135,8 @@ qemuSnapshotDiskHasBackingDisk(void *payload,
|
|
if (!disk->src->backingStore)
|
|
ignore_value(virStorageSourceGetMetadata(disk->src, uid, gid, 1, false));
|
|
|
|
- if (virStorageSourceIsSameLocation(disk->src->backingStore, iterdata->diskSrc)) {
|
|
+ if (disk->src->backingStore &&
|
|
+ virStorageSourceIsSameLocation(disk->src->backingStore, iterdata->diskSrc)) {
|
|
struct _qemuSnapshotDisksWithBackingStoreData *data =
|
|
g_new0(struct _qemuSnapshotDisksWithBackingStoreData, 1);
|
|
|
|
--
|
|
2.52.0
|