From: Marc Hartmayer Date: Thu, 23 Feb 2017 09:44:08 +0000 (+0100) Subject: qemu: Fix incorrect jump labels in error paths X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=eca76884ea7f75fb1dd015337ed1f5039b5b6c56;p=libvirt.git qemu: Fix incorrect jump labels in error paths Fix incorrect jump labels in error paths as the stop jump is only needed if the driver has already changed the state. For example 'virAtomicIntInc(&driver->nactive)' will be 'reverted' in the qemuProcessStop call. Signed-off-by: Marc Hartmayer Reviewed-by: Boris Fiuczynski Signed-off-by: Michal Privoznik --- diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index ea10fff450..df1fa0371d 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -4755,9 +4755,12 @@ qemuProcessInit(virQEMUDriverPtr driver, */ VIR_DEBUG("Setting current domain def as transient"); if (virDomainObjSetDefTransient(caps, driver->xmlopt, vm) < 0) - goto stop; + goto cleanup; - if (!(flags & VIR_QEMU_PROCESS_START_PRETEND)) { + if (flags & VIR_QEMU_PROCESS_START_PRETEND) { + if (qemuDomainSetPrivatePaths(driver, vm) < 0) + goto stop; + } else { vm->def->id = qemuDriverAllocateID(driver); qemuDomainSetFakeReboot(driver, vm, false); virDomainObjSetState(vm, VIR_DOMAIN_PAUSED, VIR_DOMAIN_PAUSED_STARTING_UP); @@ -4770,10 +4773,10 @@ qemuProcessInit(virQEMUDriverPtr driver, VIR_HOOK_QEMU_OP_PREPARE, VIR_HOOK_SUBOP_BEGIN) < 0) goto stop; - } - if (qemuDomainSetPrivatePaths(driver, vm) < 0) - goto cleanup; + if (qemuDomainSetPrivatePaths(driver, vm) < 0) + goto stop; + } ret = 0;