From: Peter Krempa Date: Mon, 20 Jan 2020 15:04:56 +0000 (+0100) Subject: qemu: snapshot: Prevent too-nested domain XML when doing inactive snapshot X-Git-Tag: v6.1.0-rc1~424 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b168fa88b85dec181882816ab65a59a6c4500667;p=thirdparty%2Flibvirt.git qemu: snapshot: Prevent too-nested domain XML when doing inactive snapshot Similarly to 510d154a0b41aa70aadabc0918d16dee22882394 we need to prevent doing too deeply nested backing chains and reject them with a sane error message. Add a loop to go through the snapshots prior to attempting actually creating them to prevent some possible inconsistent scenarios. We don't need to do it when reusing backing chains as we'll be re-detecting the backing chain in that case anyways. Signed-off-by: Peter Krempa Reviewed-by: Eric Blake --- diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index a833951e47..fc080b4a48 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -14653,6 +14653,9 @@ qemuDomainSnapshotCreateInactiveExternal(virQEMUDriverPtr driver, if (!snapdisk->src->format) snapdisk->src->format = VIR_STORAGE_FILE_QCOW2; + if (qemuDomainStorageSourceValidateDepth(defdisk->src, 1, defdisk->dst) < 0) + return -1; + /* creates cmd line args: qemu-img create -f qcow2 -o */ if (!(cmd = virCommandNewArgList(qemuImgPath, "create",