Similar to qemuDomainAddChardevTLSObjects let's move the chardev
source must be TCP and it has the @haveTLS flag set checks before
trying to delete the TLS objects.
For the Chr device this represents no change; however, for RNG device
this is an additionaly check that was missed in commit id '68808516'.
Before adding the objects, TCP and haveTLS are checked.
Signed-off-by: John Ferlan <jferlan(a)redhat.com>
---
Thanks for the review... Of course after re-reading my own patch "in
the morning" I realized I could/should have taken the next step to check
the chardev source for TCP and haveTLS being set similar to how the Add
code does things. So that's what this patch does.
src/qemu/qemu_hotplug.c | 16 +++++++++++-----
1 file changed, 11 insertions(+), 5 deletions(-)
diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c
index 85f47bee2..b79807300 100644
--- a/src/qemu/qemu_hotplug.c
+++ b/src/qemu/qemu_hotplug.c
@@ -1565,6 +1565,7 @@ qemuDomainAddChardevTLSObjects(virConnectPtr conn,
static int
qemuDomainDelChardevTLSObjects(virQEMUDriverPtr driver,
virDomainObjPtr vm,
+ virDomainChrSourceDefPtr dev,
const char *inAlias)
{
int ret = -1;
@@ -1573,6 +1574,12 @@ qemuDomainDelChardevTLSObjects(virQEMUDriverPtr driver,
char *tlsAlias = NULL;
char *secAlias = NULL;
+ if (dev->type != VIR_DOMAIN_CHR_TYPE_TCP ||
+ dev->data.tcp.haveTLS != VIR_TRISTATE_BOOL_YES) {
+ ret = 0;
+ goto cleanup;
+ }
+
if (!(tlsAlias = qemuAliasTLSObjFromSrcAlias(inAlias)))
goto cleanup;
@@ -4178,10 +4185,8 @@ qemuDomainRemoveChrDevice(virQEMUDriverPtr driver,
if (qemuDomainObjExitMonitor(driver, vm) < 0)
goto cleanup;
- if (chr->source->type == VIR_DOMAIN_CHR_TYPE_TCP &&
- chr->source->data.tcp.haveTLS == VIR_TRISTATE_BOOL_YES &&
- rc == 0 &&
- qemuDomainDelChardevTLSObjects(driver, vm, charAlias) < 0)
+ if (rc == 0 &&
+ qemuDomainDelChardevTLSObjects(driver, vm, chr->source, charAlias) < 0)
goto cleanup;
virDomainAuditChardev(vm, chr, NULL, "detach", rc == 0);
@@ -4243,7 +4248,8 @@ qemuDomainRemoveRNGDevice(virQEMUDriverPtr driver,
if (rng->backend == VIR_DOMAIN_RNG_BACKEND_EGD &&
rc == 0 &&
- qemuDomainDelChardevTLSObjects(driver, vm, charAlias) < 0)
+ qemuDomainDelChardevTLSObjects(driver, vm, rng->source.chardev,
+ charAlias) < 0)
goto cleanup;
virDomainAuditRNG(vm, rng, NULL, "detach", rc == 0);
--
2.13.6