From cb0159df9f1d0f5eaa489efa0c2b307441c23ba8 Mon Sep 17 00:00:00 2001 From: John Ferlan Date: Fri, 20 May 2016 08:42:29 -0400 Subject: [PATCH] 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) --- src/lxc/lxc_driver.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) 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);