[libvirt] [PATCH v2 3/3] lxc: Fix lxcDomainDestroyFlags endjob processing
Michal Privoznik
mprivozn at redhat.com
Wed May 25 08:36:41 UTC 2016
On 25.05.2016 00:53, John Ferlan wrote:
> 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)
>
> Signed-off-by: John Ferlan <jferlan at redhat.com>
> ---
> 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 d690886..9e03f1f 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);
>
Okay, I guess this makes sense. I had to think twice when I saw this
patch. But if a transient inactive domain is destroyed, it should not
had been in the list in the first place.
Michal
More information about the libvir-list
mailing list