From: John Ferlan Date: Fri, 20 May 2016 12:42:29 +0000 (-0400) Subject: lxc: Fix lxcDomainDestroyFlags endjob processing X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=cb0159df9f1d0f5eaa489efa0c2b307441c23ba8;p=libvirt.git lxc: Fix lxcDomainDestroyFlags endjob processing Commit id '15ccb0dbf' added job functions for the lxc driver; however, for shutdown and nonpersistent path, the vm was removed from the domain object list and the vm pointer cleared before the endjob. Adjust the code to perform the endjob first and then perform the ObjListRemove as long as the vm wasn't NULL. This follows more closely models from qemu and libxl Found by Coverity (FORWARD_NULL) --- diff --git a/src/lxc/lxc_driver.c b/src/lxc/lxc_driver.c index d6908864be..9e03f1f62e 100644 --- a/src/lxc/lxc_driver.c +++ b/src/lxc/lxc_driver.c @@ -1541,13 +1541,11 @@ lxcDomainDestroyFlags(virDomainPtr dom, VIR_DOMAIN_EVENT_STOPPED_DESTROYED); priv->doneStopEvent = true; virDomainAuditStop(vm, "destroyed"); - if (!vm->persistent) { - virDomainObjListRemove(driver->domains, vm); - vm = NULL; - } endjob: virLXCDomainObjEndJob(driver, vm); + if (!vm->persistent) + virDomainObjListRemove(driver->domains, vm); cleanup: virDomainObjEndAPI(&vm);