In a number of places in the bhyve driver, virObjectUnlock()
is called with an arg without check if the arg is non-NULL, which
could result in passing NULL value and a warning like:
virObjectUnlock:340 : Object 0x0 ((unknown)) is not a virObjectLockable instance
* src/bhyve/bhyve_driver.c (bhyveDomainGetInfo)
(bhyveDomainGetState, bhyveDomainGetAutostart)
(bhyveDomainSetAutostart, bhyveDomainIsActive)
(bhyveDomainIsPersistent, bhyveDomainGetXMLDesc)
(bhyveDomainUndefine, bhyveDomainLookupByUUID)
(bhyveDomainLookupByName, bhyveDomainLookupByID)
(bhyveDomainCreateWithFlags, bhyveDomainOpenConsole):
Check if arg is not NULL before calling virObjectUnlock on it.
ret = 0;
cleanup:
- virObjectUnlock(vm);
+ if (vm)
+ virObjectUnlock(vm);
return ret;
}
ret = 0;
cleanup:
- virObjectUnlock(vm);
+ if (vm)
+ virObjectUnlock(vm);
return ret;
}
ret = 0;
cleanup:
- virObjectUnlock(vm);
+ if (vm)
+ virObjectUnlock(vm);
return ret;
}
cleanup:
VIR_FREE(configFile);
VIR_FREE(autostartLink);
- virObjectUnlock(vm);
+ if (vm)
+ virObjectUnlock(vm);
return ret;
}
ret = virDomainObjIsActive(obj);
cleanup:
- virObjectUnlock(obj);
+ if (obj)
+ virObjectUnlock(obj);
return ret;
}
ret = obj->persistent;
cleanup:
- virObjectUnlock(obj);
+ if (obj)
+ virObjectUnlock(obj);
return ret;
}
ret = virDomainDefFormat(vm->def, flags);
cleanup:
- virObjectUnlock(vm);
+ if (vm)
+ virObjectUnlock(vm);
return ret;
}
dom->id = vm->def->id;
cleanup:
- virObjectUnlock(vm);
+ if (vm)
+ virObjectUnlock(vm);
return dom;
}
dom->id = vm->def->id;
cleanup:
- virObjectUnlock(vm);
+ if (vm)
+ virObjectUnlock(vm);
return dom;
}
dom->id = vm->def->id;
cleanup:
- virObjectUnlock(vm);
+ if (vm)
+ virObjectUnlock(vm);
return dom;
}
VIR_DOMAIN_EVENT_STARTED_BOOTED);
cleanup:
- virObjectUnlock(vm);
+ if (vm)
+ virObjectUnlock(vm);
if (event)
virObjectEventStateQueue(privconn->domainEventState, event);
return ret;
ret = 0;
cleanup:
- virObjectUnlock(vm);
+ if (vm)
+ virObjectUnlock(vm);
return ret;
}