|
|
51d9a2 |
From 62d0406b726b0d62cb136924e7dce2a2fd364ec6 Mon Sep 17 00:00:00 2001
|
|
|
51d9a2 |
Message-Id: <62d0406b726b0d62cb136924e7dce2a2fd364ec6@dist-git>
|
|
|
51d9a2 |
From: Peter Krempa <pkrempa@redhat.com>
|
|
|
51d9a2 |
Date: Tue, 3 Jul 2018 16:48:38 +0200
|
|
|
51d9a2 |
Subject: [PATCH] qemu: hotplug: Don't access srcPriv when it's not allocated
|
|
|
51d9a2 |
|
|
|
51d9a2 |
The private data of a virStorageSource which is backing an iSCSI hostdev
|
|
|
51d9a2 |
may be NULL if no authentication is present. The code handling the
|
|
|
51d9a2 |
hotplug would attempt to extract the authentication info stored in
|
|
|
51d9a2 |
'secinfo' without checking if it is allocated which resulted in a crash.
|
|
|
51d9a2 |
|
|
|
51d9a2 |
Here we opt the easy way to check if srcPriv is not NULL so that we
|
|
|
51d9a2 |
don't duplicate all the logic which selects whether the disk source has
|
|
|
51d9a2 |
a secret.
|
|
|
51d9a2 |
|
|
|
51d9a2 |
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1597550
|
|
|
51d9a2 |
|
|
|
51d9a2 |
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
|
|
|
51d9a2 |
Reviewed-by: John Ferlan <jferlan@redhat.com>
|
|
|
51d9a2 |
(cherry picked from commit 33a475056fdd76c030528982e422bae79c0a0e4a)
|
|
|
51d9a2 |
Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
|
|
|
51d9a2 |
---
|
|
|
51d9a2 |
src/qemu/qemu_hotplug.c | 3 ++-
|
|
|
51d9a2 |
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
|
51d9a2 |
|
|
|
51d9a2 |
diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c
|
|
|
51d9a2 |
index fcd8eb0ffa..075f2fb72e 100644
|
|
|
51d9a2 |
--- a/src/qemu/qemu_hotplug.c
|
|
|
51d9a2 |
+++ b/src/qemu/qemu_hotplug.c
|
|
|
51d9a2 |
@@ -2240,7 +2240,8 @@ qemuDomainAttachHostSCSIDevice(virQEMUDriverPtr driver,
|
|
|
51d9a2 |
if (scsisrc->protocol == VIR_DOMAIN_HOSTDEV_SCSI_PROTOCOL_TYPE_ISCSI) {
|
|
|
51d9a2 |
qemuDomainStorageSourcePrivatePtr srcPriv =
|
|
|
51d9a2 |
QEMU_DOMAIN_STORAGE_SOURCE_PRIVATE(scsisrc->u.iscsi.src);
|
|
|
51d9a2 |
- secinfo = srcPriv->secinfo;
|
|
|
51d9a2 |
+ if (srcPriv)
|
|
|
51d9a2 |
+ secinfo = srcPriv->secinfo;
|
|
|
51d9a2 |
}
|
|
|
51d9a2 |
|
|
|
51d9a2 |
if (secinfo && secinfo->type == VIR_DOMAIN_SECRET_INFO_TYPE_AES) {
|
|
|
51d9a2 |
--
|
|
|
51d9a2 |
2.18.0
|
|
|
51d9a2 |
|