From 1222a3032b85b5ed15c6b63c4dd99ce8c914fed0 Mon Sep 17 00:00:00 2001 From: John Ferlan Date: Mon, 16 May 2016 08:20:46 -0400 Subject: [PATCH] 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 --- src/libxl/libxl_migration.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/libxl/libxl_migration.c b/src/libxl/libxl_migration.c index ad54960ec1..a809aa0511 100644 --- a/src/libxl/libxl_migration.c +++ b/src/libxl/libxl_migration.c @@ -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 -- GitLab