diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 673d8a68c4..73a825dfdb 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -1516,7 +1516,8 @@ static virDomainPtr qemuDomainLookupByName(virConnectPtr conn, if (dom) dom->id = vm->def->id; cleanup: - virObjectUnlock(vm); + if (vm) + virObjectUnlock(vm); return dom; } diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c index 1db6630db7..77e0b357c0 100644 --- a/src/qemu/qemu_migration.c +++ b/src/qemu/qemu_migration.c @@ -3101,7 +3101,9 @@ qemuMigrationPrepareAny(virQEMUDriverPtr driver, VIR_FREE(xmlout); VIR_FORCE_CLOSE(dataFD[0]); VIR_FORCE_CLOSE(dataFD[1]); - if (ret < 0) { + if (ret < 0 && priv) { + /* priv is set right after vm is added to the list of domains + * and there is no 'goto cleanup;' in the middle of those */ virPortAllocatorRelease(driver->migrationPorts, priv->nbdPort); priv->nbdPort = 0; qemuDomainRemoveInactive(driver, vm);