[libvirt] [PATCH] qemu: blockcopy: Initialize correct source structure

Peter Krempa pkrempa at redhat.com
Tue Jul 15 08:35:16 UTC 2014

4cc1f1a01fb338de939ba88eb933931687b22336 introduced a crash when doing a
block copy as virStorageSourceInitChainElement was called on
"disk->mirror" that is still NULL at that point instead of "mirror"
which temporarily holds the mirror source struct until it's fully
initialized. This resulted into a crash as a NULL was dereferenced.

Reported by: Shanzi Yu <shyu at redhat.com>

Fortunately unreleased.

 src/qemu/qemu_driver.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index 8d40bc9..c0ad446 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -15309,7 +15309,7 @@ qemuDomainBlockCopy(virDomainObjPtr vm,
     if (VIR_STRDUP(mirror->path, dest) < 0)
         goto endjob;

-    if (virStorageSourceInitChainElement(disk->mirror, disk->src, false) < 0)
+    if (virStorageSourceInitChainElement(mirror, disk->src, false) < 0)
         goto endjob;

     if (qemuDomainPrepareDiskChainElement(driver, vm, mirror,

More information about the libvir-list mailing list