File libvirt-qemu-Refuse-to-create-snapshot-of-a-disk-without-source.patch of Package libvirt

From d5be542d1ccfb072f4fbf2ba4d7e20225c59bb2e Mon Sep 17 00:00:00 2001
Message-Id: <d5be542d1ccfb072f4fbf2ba4d7e20225c59bb2e@dist-git>
From: Jiri Denemark <jdenemar@redhat.com>
Date: Tue, 19 Jan 2016 15:43:16 +0100
Subject: [PATCH] qemu: Refuse to create snapshot of a disk without source

RHEL-only -- upstream fixed the issue by refactoring disk source

Libvirtd would crash in qemuDomainSnapshotUndoSingleDiskActive while
trying to access NULL in a disk's source.

https://bugzilla.redhat.com/show_bug.cgi?id=1299411

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
---
 src/qemu/qemu_driver.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index 672a3dd..c096727 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -11929,6 +11929,13 @@ qemuDomainSnapshotCreateSingleDiskActive(struct qemud_driver *driver,
         return -1;
     }
 
+    if (!disk->src) {
+        virReportError(VIR_ERR_OPERATION_INVALID,
+                       _("disk '%s' has no source"),
+                       disk->dst);
+        goto cleanup;
+    }
+
     if (virAsprintf(&device, "drive-%s", disk->info.alias) < 0 ||
         !(source = strdup(snap->file)) ||
         (persistDisk &&
-- 
2.7.0

openSUSE Build Service is sponsored by