When a checkpoint is redefined without providing the domain XML, we
might end up with a definition where the per-disk bitmap name is not
set. Trying to delete such checkpoint would lead to a crash.
Refuse such deletion.
Resolves:
https://bugzilla.redhat.com/show_bug.cgi?id=1941600
Signed-off-by: Peter Krempa <pkrempa(a)redhat.com>
---
src/qemu/qemu_checkpoint.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/src/qemu/qemu_checkpoint.c b/src/qemu/qemu_checkpoint.c
index 689a556959..d2a621a52b 100644
--- a/src/qemu/qemu_checkpoint.c
+++ b/src/qemu/qemu_checkpoint.c
@@ -206,6 +206,13 @@ qemuCheckpointDiscardBitmaps(virDomainObjPtr vm,
if (chkdisk->type != VIR_DOMAIN_CHECKPOINT_TYPE_BITMAP)
continue;
+ if (!chkdisk->bitmap) {
+ virReportError(VIR_ERR_INVALID_ARG,
+ _("missing bitmap name for disk '%s' of
checkpoint '%s'"),
+ chkdisk->name, chkdef->parent.name);
+ return -1;
+ }
+
if (qemuCheckpointDiscardDiskBitmaps(domdisk->src, blockNamedNodeData,
chkdisk->bitmap,
actions, domdisk->dst,
--
2.29.2