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