diff --git a/src/libxl/libxl_migration.c b/src/libxl/libxl_migration.c index 534abb8704bb7b9a8d21f7d51865fae70055f2b3..a471d2aa1154e5b451498ba5afaddebec1a95ee8 100644 --- a/src/libxl/libxl_migration.c +++ b/src/libxl/libxl_migration.c @@ -594,6 +594,7 @@ libxlDomainMigrationPrepare(virConnectPtr dconn, if (virPortAllocatorAcquire(driver->migrationPorts, &port) < 0) goto error; + priv->migrationPort = port; if (virAsprintf(uri_out, "tcp://%s:%d", hostname, port) < 0) goto error; } else { @@ -628,6 +629,7 @@ libxlDomainMigrationPrepare(virConnectPtr dconn, if (virPortAllocatorAcquire(driver->migrationPorts, &port) < 0) goto error; + priv->migrationPort = port; } else { port = uri->port; } @@ -690,6 +692,8 @@ libxlDomainMigrationPrepare(virConnectPtr dconn, } VIR_FREE(socks); virObjectUnref(args); + virPortAllocatorRelease(driver->migrationPorts, priv->migrationPort); + priv->migrationPort = 0; /* Remove virDomainObj from domain list */ if (vm) {