We tolerate image format detection during block copy in very specific
circumstances, but the code didn't error out on failure of the format
detection.
Signed-off-by: Peter Krempa <pkrempa(a)redhat.com>
---
src/qemu/qemu_driver.c | 17 ++++++++---------
1 file changed, 8 insertions(+), 9 deletions(-)
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index 18bd0101e7..e43d6554a1 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -18104,15 +18104,14 @@ qemuDomainBlockCopyCommon(virDomainObjPtr vm,
if (!mirror_reuse) {
mirror->format = disk->src->format;
} else {
- if (mirror_initialized &&
- virStorageSourceIsLocalStorage(mirror)) {
- /* If the user passed the REUSE_EXT flag, then either they
- * can also pass the RAW flag or use XML to tell us the format.
- * So if we get here, we assume it is safe for us to probe the
- * format from the file that we will be using. */
- mirror->format = virStorageFileProbeFormat(mirror->path,
cfg->user,
- cfg->group);
- } else {
+ /* If the user passed the REUSE_EXT flag, then either they
+ * can also pass the RAW flag or use XML to tell us the format.
+ * So if we get here, we assume it is safe for us to probe the
+ * format from the file that we will be using. */
+ if (!mirror_initialized ||
+ !virStorageSourceIsLocalStorage(mirror) ||
+ (mirror->format = virStorageFileProbeFormat(mirror->path,
cfg->user,
+ cfg->group)) < 0) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
_("reused mirror destination format must be
specified"));
goto endjob;
--
2.23.0