mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-09 14:35:25 +00:00
libxl: Free migration cookie
Commit id 'f9edcfa4' added cookie manipulation for libxl; however, some cookie crumb cleanup was missed. Found by Coverity. In libxlDomainMigrationBegin, the cookie is allocated and baked; however, the mig ingredients weren't cleaned up. In libxlDomainMigrationPrepare, when the 'mig' cookie is added to the args, set the 'mig = NULL'; otherwise, other failure paths between when the code ate the cookie data and when it was added to args would fail to clean up the crumbs. Signed-off-by: John Ferlan <jferlan@redhat.com>
This commit is contained in:
parent
52760707bc
commit
1222a3032b
@ -402,7 +402,7 @@ libxlDomainMigrationBegin(virConnectPtr conn,
|
||||
{
|
||||
libxlDriverPrivatePtr driver = conn->privateData;
|
||||
libxlDriverConfigPtr cfg = libxlDriverConfigGet(driver);
|
||||
libxlMigrationCookiePtr mig;
|
||||
libxlMigrationCookiePtr mig = NULL;
|
||||
virDomainDefPtr tmpdef = NULL;
|
||||
virDomainDefPtr def;
|
||||
char *xml = NULL;
|
||||
@ -440,6 +440,7 @@ libxlDomainMigrationBegin(virConnectPtr conn,
|
||||
vm = NULL;
|
||||
|
||||
cleanup:
|
||||
libxlMigrationCookieFree(mig);
|
||||
if (vm)
|
||||
virObjectUnlock(vm);
|
||||
|
||||
@ -601,6 +602,7 @@ libxlDomainMigrationPrepare(virConnectPtr dconn,
|
||||
args->socks = socks;
|
||||
args->nsocks = nsocks;
|
||||
args->migcookie = mig;
|
||||
mig = NULL;
|
||||
|
||||
for (i = 0; i < nsocks; i++) {
|
||||
if (virNetSocketSetBlocking(socks[i], true) < 0)
|
||||
@ -640,6 +642,7 @@ libxlDomainMigrationPrepare(virConnectPtr dconn,
|
||||
}
|
||||
|
||||
done:
|
||||
libxlMigrationCookieFree(mig);
|
||||
if (!uri_in)
|
||||
VIR_FREE(hostname);
|
||||
else
|
||||
|
Loading…
Reference in New Issue
Block a user