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