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@xxxxxxxxxx> --- 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 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list