diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 20ac408d1528edd1c45e6a802ea83e31652fa1ff..bd7d8a4c6a828f24beb252a5d0c2627fa18ae728 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -2426,11 +2426,16 @@ qemuDomainRemoveInactive(virQEMUDriverPtr driver, VIR_WARN("unable to remove snapshot directory %s", snapDir); VIR_FREE(snapDir); } + + virObjectRef(vm); + virDomainObjListRemove(driver->domains, vm); virObjectUnref(cfg); if (haveJob) qemuDomainObjEndJob(driver, vm); + + virObjectUnref(vm); } void diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index cd71741ab17d037fea01a170d926354b6bc474c0..46f02b5fde937d082fe36c508d3014463fcd01be 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -5694,8 +5694,10 @@ qemuProcessAutoDestroy(virDomainObjPtr dom, qemuDomainObjEndJob(driver, dom); - if (!dom->persistent) + if (!dom->persistent) { qemuDomainRemoveInactive(driver, dom); + dom = NULL; + } if (event) qemuDomainEventQueue(driver, event);