1
0
mirror of https://gitlab.com/libvirt/libvirt.git synced 2025-03-07 17:28:15 +00:00

qemu: Need to remove TLS object in RemoveRNGDevice

Commit id '6e6b4bfc' added the object, but forgot the other end.
This commit is contained in:
John Ferlan 2016-10-24 15:59:11 -04:00
parent 502c747aa1
commit 68808516fe

View File

@ -3609,6 +3609,7 @@ qemuDomainRemoveRNGDevice(virQEMUDriverPtr driver,
virObjectEventPtr event; virObjectEventPtr event;
char *charAlias = NULL; char *charAlias = NULL;
char *objAlias = NULL; char *objAlias = NULL;
char *tlsAlias = NULL;
qemuDomainObjPrivatePtr priv = vm->privateData; qemuDomainObjPrivatePtr priv = vm->privateData;
ssize_t idx; ssize_t idx;
int ret = -1; int ret = -1;
@ -3617,17 +3618,26 @@ qemuDomainRemoveRNGDevice(virQEMUDriverPtr driver,
VIR_DEBUG("Removing RNG device %s from domain %p %s", VIR_DEBUG("Removing RNG device %s from domain %p %s",
rng->info.alias, vm, vm->def->name); rng->info.alias, vm, vm->def->name);
if (virAsprintf(&objAlias, "obj%s", rng->info.alias) < 0) if (virAsprintf(&objAlias, "obj%s", rng->info.alias) < 0)
goto cleanup; goto cleanup;
if (!(charAlias = qemuAliasChardevFromDevAlias(rng->info.alias))) if (!(charAlias = qemuAliasChardevFromDevAlias(rng->info.alias)))
goto cleanup; goto cleanup;
if (rng->backend == VIR_DOMAIN_RNG_BACKEND_EGD &&
!(tlsAlias = qemuAliasTLSObjFromChardevAlias(charAlias)))
goto cleanup;
qemuDomainObjEnterMonitor(driver, vm); qemuDomainObjEnterMonitor(driver, vm);
rc = qemuMonitorDelObject(priv->mon, objAlias); rc = qemuMonitorDelObject(priv->mon, objAlias);
if (rc == 0 && rng->backend == VIR_DOMAIN_RNG_BACKEND_EGD) if (rc == 0 && rng->backend == VIR_DOMAIN_RNG_BACKEND_EGD) {
ignore_value(qemuMonitorDetachCharDev(priv->mon, charAlias)); ignore_value(qemuMonitorDetachCharDev(priv->mon, charAlias));
if (tlsAlias)
ignore_value(qemuMonitorDelObject(priv->mon, tlsAlias));
}
if (qemuDomainObjExitMonitor(driver, vm) < 0) if (qemuDomainObjExitMonitor(driver, vm) < 0)
goto cleanup; goto cleanup;
@ -3649,6 +3659,7 @@ qemuDomainRemoveRNGDevice(virQEMUDriverPtr driver,
cleanup: cleanup:
VIR_FREE(charAlias); VIR_FREE(charAlias);
VIR_FREE(objAlias); VIR_FREE(objAlias);
VIR_FREE(tlsAlias);
return ret; return ret;
} }