const char *
virSecurityManagerGetDOI(virSecurityManagerPtr mgr)
{
- if (mgr->drv->getDOI)
- return mgr->drv->getDOI(mgr);
+ if (mgr->drv->getDOI) {
+ const char *ret;
+ virObjectLock(mgr);
+ ret = mgr->drv->getDOI(mgr);
+ virObjectUnlock(mgr);
+ return ret;
+ }
virReportError(VIR_ERR_NO_SUPPORT, __FUNCTION__);
return NULL;
const char *
virSecurityManagerGetModel(virSecurityManagerPtr mgr)
{
- if (mgr->drv->getModel)
- return mgr->drv->getModel(mgr);
+ if (mgr->drv->getModel) {
+ const char *ret;
+ virObjectLock(mgr);
+ ret = mgr->drv->getModel(mgr);
+ virObjectUnlock(mgr);
+ return ret;
+ }
virReportError(VIR_ERR_NO_SUPPORT, __FUNCTION__);
return NULL;
virDomainDefPtr vm,
virDomainDiskDefPtr disk)
{
- if (mgr->drv->domainRestoreSecurityImageLabel)
- return mgr->drv->domainRestoreSecurityImageLabel(mgr, vm, disk);
+ if (mgr->drv->domainRestoreSecurityImageLabel) {
+ int ret;
+ virObjectLock(mgr);
+ ret = mgr->drv->domainRestoreSecurityImageLabel(mgr, vm, disk);
+ virObjectUnlock(mgr);
+ return ret;
+ }
virReportError(VIR_ERR_NO_SUPPORT, __FUNCTION__);
return -1;
int virSecurityManagerSetDaemonSocketLabel(virSecurityManagerPtr mgr,
virDomainDefPtr vm)
{
- if (mgr->drv->domainSetSecurityDaemonSocketLabel)
- return mgr->drv->domainSetSecurityDaemonSocketLabel(mgr, vm);
+ if (mgr->drv->domainSetSecurityDaemonSocketLabel) {
+ int ret;
+ virObjectLock(mgr);
+ ret = mgr->drv->domainSetSecurityDaemonSocketLabel(mgr, vm);
+ virObjectUnlock(mgr);
+ return ret;
+ }
virReportError(VIR_ERR_NO_SUPPORT, __FUNCTION__);
return -1;
int virSecurityManagerSetSocketLabel(virSecurityManagerPtr mgr,
virDomainDefPtr vm)
{
- if (mgr->drv->domainSetSecuritySocketLabel)
- return mgr->drv->domainSetSecuritySocketLabel(mgr, vm);
+ if (mgr->drv->domainSetSecuritySocketLabel) {
+ int ret;
+ virObjectLock(mgr);
+ ret = mgr->drv->domainSetSecuritySocketLabel(mgr, vm);
+ virObjectUnlock(mgr);
+ return ret;
+ }
virReportError(VIR_ERR_NO_SUPPORT, __FUNCTION__);
return -1;
int virSecurityManagerClearSocketLabel(virSecurityManagerPtr mgr,
virDomainDefPtr vm)
{
- if (mgr->drv->domainClearSecuritySocketLabel)
- return mgr->drv->domainClearSecuritySocketLabel(mgr, vm);
+ if (mgr->drv->domainClearSecuritySocketLabel) {
+ int ret;
+ virObjectLock(mgr);
+ ret = mgr->drv->domainClearSecuritySocketLabel(mgr, vm);
+ virObjectUnlock(mgr);
+ return ret;
+ }
virReportError(VIR_ERR_NO_SUPPORT, __FUNCTION__);
return -1;
virDomainDefPtr vm,
virDomainDiskDefPtr disk)
{
- if (mgr->drv->domainSetSecurityImageLabel)
- return mgr->drv->domainSetSecurityImageLabel(mgr, vm, disk);
+ if (mgr->drv->domainSetSecurityImageLabel) {
+ int ret;
+ virObjectLock(mgr);
+ ret = mgr->drv->domainSetSecurityImageLabel(mgr, vm, disk);
+ virObjectUnlock(mgr);
+ return ret;
+ }
virReportError(VIR_ERR_NO_SUPPORT, __FUNCTION__);
return -1;
virDomainHostdevDefPtr dev,
const char *vroot)
{
- if (mgr->drv->domainRestoreSecurityHostdevLabel)
- return mgr->drv->domainRestoreSecurityHostdevLabel(mgr, vm, dev, vroot);
+ if (mgr->drv->domainRestoreSecurityHostdevLabel) {
+ int ret;
+ virObjectLock(mgr);
+ ret = mgr->drv->domainRestoreSecurityHostdevLabel(mgr, vm, dev, vroot);
+ virObjectUnlock(mgr);
+ return ret;
+ }
virReportError(VIR_ERR_NO_SUPPORT, __FUNCTION__);
return -1;
virDomainHostdevDefPtr dev,
const char *vroot)
{
- if (mgr->drv->domainSetSecurityHostdevLabel)
- return mgr->drv->domainSetSecurityHostdevLabel(mgr, vm, dev, vroot);
+ if (mgr->drv->domainSetSecurityHostdevLabel) {
+ int ret;
+ virObjectLock(mgr);
+ ret = mgr->drv->domainSetSecurityHostdevLabel(mgr, vm, dev, vroot);
+ virObjectUnlock(mgr);
+ return ret;
+ }
virReportError(VIR_ERR_NO_SUPPORT, __FUNCTION__);
return -1;
virDomainDefPtr vm,
const char *savefile)
{
- if (mgr->drv->domainSetSavedStateLabel)
- return mgr->drv->domainSetSavedStateLabel(mgr, vm, savefile);
+ if (mgr->drv->domainSetSavedStateLabel) {
+ int ret;
+ virObjectLock(mgr);
+ ret = mgr->drv->domainSetSavedStateLabel(mgr, vm, savefile);
+ virObjectUnlock(mgr);
+ return ret;
+ }
virReportError(VIR_ERR_NO_SUPPORT, __FUNCTION__);
return -1;
virDomainDefPtr vm,
const char *savefile)
{
- if (mgr->drv->domainRestoreSavedStateLabel)
- return mgr->drv->domainRestoreSavedStateLabel(mgr, vm, savefile);
+ if (mgr->drv->domainRestoreSavedStateLabel) {
+ int ret;
+ virObjectLock(mgr);
+ ret = mgr->drv->domainRestoreSavedStateLabel(mgr, vm, savefile);
+ virObjectUnlock(mgr);
+ return ret;
+ }
virReportError(VIR_ERR_NO_SUPPORT, __FUNCTION__);
return -1;
if ((sec_managers = virSecurityManagerGetNested(mgr)) == NULL)
return -1;
+ virObjectLock(mgr);
for (i = 0; sec_managers[i]; i++) {
seclabel = virDomainDefGetSecurityLabelDef(vm,
sec_managers[i]->drv->name);
}
cleanup:
+ virObjectUnlock(mgr);
VIR_FREE(sec_managers);
return rc;
}
virDomainDefPtr vm,
pid_t pid)
{
- if (mgr->drv->domainReserveSecurityLabel)
- return mgr->drv->domainReserveSecurityLabel(mgr, vm, pid);
+ if (mgr->drv->domainReserveSecurityLabel) {
+ int ret;
+ virObjectLock(mgr);
+ ret = mgr->drv->domainReserveSecurityLabel(mgr, vm, pid);
+ virObjectUnlock(mgr);
+ return ret;
+ }
virReportError(VIR_ERR_NO_SUPPORT, __FUNCTION__);
return -1;
int virSecurityManagerReleaseLabel(virSecurityManagerPtr mgr,
virDomainDefPtr vm)
{
- if (mgr->drv->domainReleaseSecurityLabel)
- return mgr->drv->domainReleaseSecurityLabel(mgr, vm);
+ if (mgr->drv->domainReleaseSecurityLabel) {
+ int ret;
+ virObjectLock(mgr);
+ ret = mgr->drv->domainReleaseSecurityLabel(mgr, vm);
+ virObjectUnlock(mgr);
+ return ret;
+ }
virReportError(VIR_ERR_NO_SUPPORT, __FUNCTION__);
return -1;
virDomainDefPtr vm,
const char *stdin_path)
{
- if (mgr->drv->domainSetSecurityAllLabel)
- return mgr->drv->domainSetSecurityAllLabel(mgr, vm, stdin_path);
+ if (mgr->drv->domainSetSecurityAllLabel) {
+ int ret;
+ virObjectLock(mgr);
+ ret = mgr->drv->domainSetSecurityAllLabel(mgr, vm, stdin_path);
+ virObjectUnlock(mgr);
+ return ret;
+ }
virReportError(VIR_ERR_NO_SUPPORT, __FUNCTION__);
return -1;
virDomainDefPtr vm,
int migrated)
{
- if (mgr->drv->domainRestoreSecurityAllLabel)
- return mgr->drv->domainRestoreSecurityAllLabel(mgr, vm, migrated);
+ if (mgr->drv->domainRestoreSecurityAllLabel) {
+ int ret;
+ virObjectLock(mgr);
+ ret = mgr->drv->domainRestoreSecurityAllLabel(mgr, vm, migrated);
+ virObjectUnlock(mgr);
+ return ret;
+ }
virReportError(VIR_ERR_NO_SUPPORT, __FUNCTION__);
return -1;
pid_t pid,
virSecurityLabelPtr sec)
{
- if (mgr->drv->domainGetSecurityProcessLabel)
- return mgr->drv->domainGetSecurityProcessLabel(mgr, vm, pid, sec);
+ if (mgr->drv->domainGetSecurityProcessLabel) {
+ int ret;
+ virObjectLock(mgr);
+ ret = mgr->drv->domainGetSecurityProcessLabel(mgr, vm, pid, sec);
+ virObjectUnlock(mgr);
+ return ret;
+ }
virReportError(VIR_ERR_NO_SUPPORT, __FUNCTION__);
return -1;
int virSecurityManagerSetProcessLabel(virSecurityManagerPtr mgr,
virDomainDefPtr vm)
{
- if (mgr->drv->domainSetSecurityProcessLabel)
- return mgr->drv->domainSetSecurityProcessLabel(mgr, vm);
+ if (mgr->drv->domainSetSecurityProcessLabel) {
+ int ret;
+ virObjectLock(mgr);
+ ret = mgr->drv->domainSetSecurityProcessLabel(mgr, vm);
+ virObjectUnlock(mgr);
+ return ret;
+ }
virReportError(VIR_ERR_NO_SUPPORT, __FUNCTION__);
return -1;
if (secdef == NULL || secdef->model == NULL)
return 0;
- if (mgr->drv->domainSecurityVerify)
- return mgr->drv->domainSecurityVerify(mgr, def);
+ if (mgr->drv->domainSecurityVerify) {
+ int ret;
+ virObjectLock(mgr);
+ ret = mgr->drv->domainSecurityVerify(mgr, def);
+ virObjectUnlock(mgr);
+ return ret;
+ }
virReportError(VIR_ERR_NO_SUPPORT, __FUNCTION__);
return -1;
virDomainDefPtr vm,
int fd)
{
- if (mgr->drv->domainSetSecurityImageFDLabel)
- return mgr->drv->domainSetSecurityImageFDLabel(mgr, vm, fd);
+ if (mgr->drv->domainSetSecurityImageFDLabel) {
+ int ret;
+ virObjectLock(mgr);
+ ret = mgr->drv->domainSetSecurityImageFDLabel(mgr, vm, fd);
+ virObjectUnlock(mgr);
+ return ret;
+ }
virReportError(VIR_ERR_NO_SUPPORT, __FUNCTION__);
return -1;
virDomainDefPtr vm,
int fd)
{
- if (mgr->drv->domainSetSecurityTapFDLabel)
- return mgr->drv->domainSetSecurityTapFDLabel(mgr, vm, fd);
+ if (mgr->drv->domainSetSecurityTapFDLabel) {
+ int ret;
+ virObjectLock(mgr);
+ ret = mgr->drv->domainSetSecurityTapFDLabel(mgr, vm, fd);
+ virObjectUnlock(mgr);
+ return ret;
+ }
virReportError(VIR_ERR_NO_SUPPORT, __FUNCTION__);
return -1;
char *virSecurityManagerGetMountOptions(virSecurityManagerPtr mgr,
virDomainDefPtr vm)
{
- if (mgr->drv->domainGetSecurityMountOptions)
- return mgr->drv->domainGetSecurityMountOptions(mgr, vm);
+ if (mgr->drv->domainGetSecurityMountOptions) {
+ char *ret;
+ virObjectLock(mgr);
+ ret = mgr->drv->domainGetSecurityMountOptions(mgr, vm);
+ virObjectUnlock(mgr);
+ return ret;
+ }
virReportError(VIR_ERR_NO_SUPPORT, __FUNCTION__);
return NULL;
virDomainDefPtr vm,
const char *path)
{
- if (mgr->drv->domainSetSecurityHugepages)
- return mgr->drv->domainSetSecurityHugepages(mgr, vm, path);
+ if (mgr->drv->domainSetSecurityHugepages) {
+ int ret;
+ virObjectLock(mgr);
+ ret = mgr->drv->domainSetSecurityHugepages(mgr, vm, path);
+ virObjectUnlock(mgr);
+ return ret;
+ }
return 0;
}