mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-03-07 17:28:15 +00:00
security_manager: Use automatic mutex management
Signed-off-by: Tim Wiederhake <twiederh@redhat.com> Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
This commit is contained in:
parent
122efa6a07
commit
c8f5b33631
@ -254,13 +254,12 @@ virSecurityManagerPostFork(virSecurityManager *mgr)
|
|||||||
int
|
int
|
||||||
virSecurityManagerTransactionStart(virSecurityManager *mgr)
|
virSecurityManagerTransactionStart(virSecurityManager *mgr)
|
||||||
{
|
{
|
||||||
int ret = 0;
|
VIR_LOCK_GUARD lock = virObjectLockGuard(mgr);
|
||||||
|
|
||||||
virObjectLock(mgr);
|
if (!mgr->drv->transactionStart)
|
||||||
if (mgr->drv->transactionStart)
|
return 0;
|
||||||
ret = mgr->drv->transactionStart(mgr);
|
|
||||||
virObjectUnlock(mgr);
|
return mgr->drv->transactionStart(mgr);
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -291,13 +290,12 @@ virSecurityManagerTransactionCommit(virSecurityManager *mgr,
|
|||||||
pid_t pid,
|
pid_t pid,
|
||||||
bool lock)
|
bool lock)
|
||||||
{
|
{
|
||||||
int ret = 0;
|
VIR_LOCK_GUARD lockguard = virObjectLockGuard(mgr);
|
||||||
|
|
||||||
virObjectLock(mgr);
|
if (!mgr->drv->transactionCommit)
|
||||||
if (mgr->drv->transactionCommit)
|
return 0;
|
||||||
ret = mgr->drv->transactionCommit(mgr, pid, lock);
|
|
||||||
virObjectUnlock(mgr);
|
return mgr->drv->transactionCommit(mgr, pid, lock);
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -310,10 +308,10 @@ virSecurityManagerTransactionCommit(virSecurityManager *mgr,
|
|||||||
void
|
void
|
||||||
virSecurityManagerTransactionAbort(virSecurityManager *mgr)
|
virSecurityManagerTransactionAbort(virSecurityManager *mgr)
|
||||||
{
|
{
|
||||||
virObjectLock(mgr);
|
VIR_LOCK_GUARD lock = virObjectLockGuard(mgr);
|
||||||
|
|
||||||
if (mgr->drv->transactionAbort)
|
if (mgr->drv->transactionAbort)
|
||||||
mgr->drv->transactionAbort(mgr);
|
mgr->drv->transactionAbort(mgr);
|
||||||
virObjectUnlock(mgr);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -341,32 +339,28 @@ virSecurityManagerGetDriver(virSecurityManager *mgr)
|
|||||||
const char *
|
const char *
|
||||||
virSecurityManagerGetDOI(virSecurityManager *mgr)
|
virSecurityManagerGetDOI(virSecurityManager *mgr)
|
||||||
{
|
{
|
||||||
if (mgr->drv->getDOI) {
|
VIR_LOCK_GUARD lock = virObjectLockGuard(mgr);
|
||||||
const char *ret;
|
|
||||||
virObjectLock(mgr);
|
|
||||||
ret = mgr->drv->getDOI(mgr);
|
|
||||||
virObjectUnlock(mgr);
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
if (!mgr->drv->getDOI) {
|
||||||
virReportUnsupportedError();
|
virReportUnsupportedError();
|
||||||
return NULL;
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
return mgr->drv->getDOI(mgr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
const char *
|
const char *
|
||||||
virSecurityManagerGetModel(virSecurityManager *mgr)
|
virSecurityManagerGetModel(virSecurityManager *mgr)
|
||||||
{
|
{
|
||||||
if (mgr->drv->getModel) {
|
VIR_LOCK_GUARD lock = virObjectLockGuard(mgr);
|
||||||
const char *ret;
|
|
||||||
virObjectLock(mgr);
|
|
||||||
ret = mgr->drv->getModel(mgr);
|
|
||||||
virObjectUnlock(mgr);
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
if (!mgr->drv->getModel) {
|
||||||
virReportUnsupportedError();
|
virReportUnsupportedError();
|
||||||
return NULL;
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
return mgr->drv->getModel(mgr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -375,15 +369,12 @@ const char *
|
|||||||
virSecurityManagerGetBaseLabel(virSecurityManager *mgr,
|
virSecurityManagerGetBaseLabel(virSecurityManager *mgr,
|
||||||
int virtType)
|
int virtType)
|
||||||
{
|
{
|
||||||
if (mgr->drv->getBaseLabel) {
|
VIR_LOCK_GUARD lock = virObjectLockGuard(mgr);
|
||||||
const char *ret;
|
|
||||||
virObjectLock(mgr);
|
|
||||||
ret = mgr->drv->getBaseLabel(mgr, virtType);
|
|
||||||
virObjectUnlock(mgr);
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
if (!mgr->drv->getBaseLabel)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
|
return mgr->drv->getBaseLabel(mgr, virtType);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -425,16 +416,14 @@ virSecurityManagerRestoreImageLabel(virSecurityManager *mgr,
|
|||||||
virStorageSource *src,
|
virStorageSource *src,
|
||||||
virSecurityDomainImageLabelFlags flags)
|
virSecurityDomainImageLabelFlags flags)
|
||||||
{
|
{
|
||||||
if (mgr->drv->domainRestoreSecurityImageLabel) {
|
VIR_LOCK_GUARD lock = virObjectLockGuard(mgr);
|
||||||
int ret;
|
|
||||||
virObjectLock(mgr);
|
|
||||||
ret = mgr->drv->domainRestoreSecurityImageLabel(mgr, vm, src, flags);
|
|
||||||
virObjectUnlock(mgr);
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
if (!mgr->drv->domainRestoreSecurityImageLabel) {
|
||||||
virReportUnsupportedError();
|
virReportUnsupportedError();
|
||||||
return -1;
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return mgr->drv->domainRestoreSecurityImageLabel(mgr, vm, src, flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -464,15 +453,12 @@ virSecurityManagerMoveImageMetadata(virSecurityManager *mgr,
|
|||||||
virStorageSource *src,
|
virStorageSource *src,
|
||||||
virStorageSource *dst)
|
virStorageSource *dst)
|
||||||
{
|
{
|
||||||
if (mgr->drv->domainMoveImageMetadata) {
|
VIR_LOCK_GUARD lock = virObjectLockGuard(mgr);
|
||||||
int ret;
|
|
||||||
virObjectLock(mgr);
|
|
||||||
ret = mgr->drv->domainMoveImageMetadata(mgr, pid, src, dst);
|
|
||||||
virObjectUnlock(mgr);
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
if (!mgr->drv->domainMoveImageMetadata)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
return mgr->drv->domainMoveImageMetadata(mgr, pid, src, dst);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -480,16 +466,14 @@ int
|
|||||||
virSecurityManagerSetDaemonSocketLabel(virSecurityManager *mgr,
|
virSecurityManagerSetDaemonSocketLabel(virSecurityManager *mgr,
|
||||||
virDomainDef *vm)
|
virDomainDef *vm)
|
||||||
{
|
{
|
||||||
if (mgr->drv->domainSetSecurityDaemonSocketLabel) {
|
VIR_LOCK_GUARD lock = virObjectLockGuard(mgr);
|
||||||
int ret;
|
|
||||||
virObjectLock(mgr);
|
|
||||||
ret = mgr->drv->domainSetSecurityDaemonSocketLabel(mgr, vm);
|
|
||||||
virObjectUnlock(mgr);
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
if (!mgr->drv->domainSetSecurityDaemonSocketLabel) {
|
||||||
virReportUnsupportedError();
|
virReportUnsupportedError();
|
||||||
return -1;
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return mgr->drv->domainSetSecurityDaemonSocketLabel(mgr, vm);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -497,16 +481,14 @@ int
|
|||||||
virSecurityManagerSetSocketLabel(virSecurityManager *mgr,
|
virSecurityManagerSetSocketLabel(virSecurityManager *mgr,
|
||||||
virDomainDef *vm)
|
virDomainDef *vm)
|
||||||
{
|
{
|
||||||
if (mgr->drv->domainSetSecuritySocketLabel) {
|
VIR_LOCK_GUARD lock = virObjectLockGuard(mgr);
|
||||||
int ret;
|
|
||||||
virObjectLock(mgr);
|
|
||||||
ret = mgr->drv->domainSetSecuritySocketLabel(mgr, vm);
|
|
||||||
virObjectUnlock(mgr);
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
if (!mgr->drv->domainSetSecuritySocketLabel) {
|
||||||
virReportUnsupportedError();
|
virReportUnsupportedError();
|
||||||
return -1;
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return mgr->drv->domainSetSecuritySocketLabel(mgr, vm);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -514,16 +496,14 @@ int
|
|||||||
virSecurityManagerClearSocketLabel(virSecurityManager *mgr,
|
virSecurityManagerClearSocketLabel(virSecurityManager *mgr,
|
||||||
virDomainDef *vm)
|
virDomainDef *vm)
|
||||||
{
|
{
|
||||||
if (mgr->drv->domainClearSecuritySocketLabel) {
|
VIR_LOCK_GUARD lock = virObjectLockGuard(mgr);
|
||||||
int ret;
|
|
||||||
virObjectLock(mgr);
|
|
||||||
ret = mgr->drv->domainClearSecuritySocketLabel(mgr, vm);
|
|
||||||
virObjectUnlock(mgr);
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
if (!mgr->drv->domainClearSecuritySocketLabel) {
|
||||||
virReportUnsupportedError();
|
virReportUnsupportedError();
|
||||||
return -1;
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return mgr->drv->domainClearSecuritySocketLabel(mgr, vm);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -544,16 +524,14 @@ virSecurityManagerSetImageLabel(virSecurityManager *mgr,
|
|||||||
virStorageSource *src,
|
virStorageSource *src,
|
||||||
virSecurityDomainImageLabelFlags flags)
|
virSecurityDomainImageLabelFlags flags)
|
||||||
{
|
{
|
||||||
if (mgr->drv->domainSetSecurityImageLabel) {
|
VIR_LOCK_GUARD lock = virObjectLockGuard(mgr);
|
||||||
int ret;
|
|
||||||
virObjectLock(mgr);
|
|
||||||
ret = mgr->drv->domainSetSecurityImageLabel(mgr, vm, src, flags);
|
|
||||||
virObjectUnlock(mgr);
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
if (!mgr->drv->domainSetSecurityImageLabel) {
|
||||||
virReportUnsupportedError();
|
virReportUnsupportedError();
|
||||||
return -1;
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return mgr->drv->domainSetSecurityImageLabel(mgr, vm, src, flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -563,16 +541,14 @@ virSecurityManagerRestoreHostdevLabel(virSecurityManager *mgr,
|
|||||||
virDomainHostdevDef *dev,
|
virDomainHostdevDef *dev,
|
||||||
const char *vroot)
|
const char *vroot)
|
||||||
{
|
{
|
||||||
if (mgr->drv->domainRestoreSecurityHostdevLabel) {
|
VIR_LOCK_GUARD lock = virObjectLockGuard(mgr);
|
||||||
int ret;
|
|
||||||
virObjectLock(mgr);
|
|
||||||
ret = mgr->drv->domainRestoreSecurityHostdevLabel(mgr, vm, dev, vroot);
|
|
||||||
virObjectUnlock(mgr);
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
if (!mgr->drv->domainRestoreSecurityHostdevLabel) {
|
||||||
virReportUnsupportedError();
|
virReportUnsupportedError();
|
||||||
return -1;
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return mgr->drv->domainRestoreSecurityHostdevLabel(mgr, vm, dev, vroot);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -582,16 +558,14 @@ virSecurityManagerSetHostdevLabel(virSecurityManager *mgr,
|
|||||||
virDomainHostdevDef *dev,
|
virDomainHostdevDef *dev,
|
||||||
const char *vroot)
|
const char *vroot)
|
||||||
{
|
{
|
||||||
if (mgr->drv->domainSetSecurityHostdevLabel) {
|
VIR_LOCK_GUARD lock = virObjectLockGuard(mgr);
|
||||||
int ret;
|
|
||||||
virObjectLock(mgr);
|
|
||||||
ret = mgr->drv->domainSetSecurityHostdevLabel(mgr, vm, dev, vroot);
|
|
||||||
virObjectUnlock(mgr);
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
if (!mgr->drv->domainSetSecurityHostdevLabel) {
|
||||||
virReportUnsupportedError();
|
virReportUnsupportedError();
|
||||||
return -1;
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return mgr->drv->domainSetSecurityHostdevLabel(mgr, vm, dev, vroot);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -600,15 +574,12 @@ virSecurityManagerSetSavedStateLabel(virSecurityManager *mgr,
|
|||||||
virDomainDef *vm,
|
virDomainDef *vm,
|
||||||
const char *savefile)
|
const char *savefile)
|
||||||
{
|
{
|
||||||
if (mgr->drv->domainSetSavedStateLabel) {
|
VIR_LOCK_GUARD lock = virObjectLockGuard(mgr);
|
||||||
int ret;
|
|
||||||
virObjectLock(mgr);
|
|
||||||
ret = mgr->drv->domainSetSavedStateLabel(mgr, vm, savefile);
|
|
||||||
virObjectUnlock(mgr);
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
if (!mgr->drv->domainSetSavedStateLabel)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
return mgr->drv->domainSetSavedStateLabel(mgr, vm, savefile);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -617,15 +588,12 @@ virSecurityManagerRestoreSavedStateLabel(virSecurityManager *mgr,
|
|||||||
virDomainDef *vm,
|
virDomainDef *vm,
|
||||||
const char *savefile)
|
const char *savefile)
|
||||||
{
|
{
|
||||||
if (mgr->drv->domainRestoreSavedStateLabel) {
|
VIR_LOCK_GUARD lock = virObjectLockGuard(mgr);
|
||||||
int ret;
|
|
||||||
virObjectLock(mgr);
|
|
||||||
ret = mgr->drv->domainRestoreSavedStateLabel(mgr, vm, savefile);
|
|
||||||
virObjectUnlock(mgr);
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
if (!mgr->drv->domainRestoreSavedStateLabel)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
return mgr->drv->domainRestoreSavedStateLabel(mgr, vm, savefile);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -713,16 +681,14 @@ virSecurityManagerReserveLabel(virSecurityManager *mgr,
|
|||||||
virDomainDef *vm,
|
virDomainDef *vm,
|
||||||
pid_t pid)
|
pid_t pid)
|
||||||
{
|
{
|
||||||
if (mgr->drv->domainReserveSecurityLabel) {
|
VIR_LOCK_GUARD lock = virObjectLockGuard(mgr);
|
||||||
int ret;
|
|
||||||
virObjectLock(mgr);
|
|
||||||
ret = mgr->drv->domainReserveSecurityLabel(mgr, vm, pid);
|
|
||||||
virObjectUnlock(mgr);
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
if (!mgr->drv->domainReserveSecurityLabel) {
|
||||||
virReportUnsupportedError();
|
virReportUnsupportedError();
|
||||||
return -1;
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return mgr->drv->domainReserveSecurityLabel(mgr, vm, pid);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -730,16 +696,14 @@ int
|
|||||||
virSecurityManagerReleaseLabel(virSecurityManager *mgr,
|
virSecurityManagerReleaseLabel(virSecurityManager *mgr,
|
||||||
virDomainDef *vm)
|
virDomainDef *vm)
|
||||||
{
|
{
|
||||||
if (mgr->drv->domainReleaseSecurityLabel) {
|
VIR_LOCK_GUARD lock = virObjectLockGuard(mgr);
|
||||||
int ret;
|
|
||||||
virObjectLock(mgr);
|
|
||||||
ret = mgr->drv->domainReleaseSecurityLabel(mgr, vm);
|
|
||||||
virObjectUnlock(mgr);
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
if (!mgr->drv->domainReleaseSecurityLabel) {
|
||||||
virReportUnsupportedError();
|
virReportUnsupportedError();
|
||||||
return -1;
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return mgr->drv->domainReleaseSecurityLabel(mgr, vm);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -857,18 +821,15 @@ virSecurityManagerSetAllLabel(virSecurityManager *mgr,
|
|||||||
bool chardevStdioLogd,
|
bool chardevStdioLogd,
|
||||||
bool migrated)
|
bool migrated)
|
||||||
{
|
{
|
||||||
if (mgr->drv->domainSetSecurityAllLabel) {
|
VIR_LOCK_GUARD lock = virObjectLockGuard(mgr);
|
||||||
int ret;
|
|
||||||
virObjectLock(mgr);
|
|
||||||
ret = mgr->drv->domainSetSecurityAllLabel(mgr, vm, incomingPath,
|
|
||||||
chardevStdioLogd,
|
|
||||||
migrated);
|
|
||||||
virObjectUnlock(mgr);
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
if (!mgr->drv->domainSetSecurityAllLabel) {
|
||||||
virReportUnsupportedError();
|
virReportUnsupportedError();
|
||||||
return -1;
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return mgr->drv->domainSetSecurityAllLabel(mgr, vm, incomingPath,
|
||||||
|
chardevStdioLogd, migrated);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -878,17 +839,15 @@ virSecurityManagerRestoreAllLabel(virSecurityManager *mgr,
|
|||||||
bool migrated,
|
bool migrated,
|
||||||
bool chardevStdioLogd)
|
bool chardevStdioLogd)
|
||||||
{
|
{
|
||||||
if (mgr->drv->domainRestoreSecurityAllLabel) {
|
VIR_LOCK_GUARD lock = virObjectLockGuard(mgr);
|
||||||
int ret;
|
|
||||||
virObjectLock(mgr);
|
|
||||||
ret = mgr->drv->domainRestoreSecurityAllLabel(mgr, vm, migrated,
|
|
||||||
chardevStdioLogd);
|
|
||||||
virObjectUnlock(mgr);
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
if (!mgr->drv->domainRestoreSecurityAllLabel) {
|
||||||
virReportUnsupportedError();
|
virReportUnsupportedError();
|
||||||
return -1;
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return mgr->drv->domainRestoreSecurityAllLabel(mgr, vm, migrated,
|
||||||
|
chardevStdioLogd);
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
@ -897,16 +856,14 @@ virSecurityManagerGetProcessLabel(virSecurityManager *mgr,
|
|||||||
pid_t pid,
|
pid_t pid,
|
||||||
virSecurityLabelPtr sec)
|
virSecurityLabelPtr sec)
|
||||||
{
|
{
|
||||||
if (mgr->drv->domainGetSecurityProcessLabel) {
|
VIR_LOCK_GUARD lock = virObjectLockGuard(mgr);
|
||||||
int ret;
|
|
||||||
virObjectLock(mgr);
|
|
||||||
ret = mgr->drv->domainGetSecurityProcessLabel(mgr, vm, pid, sec);
|
|
||||||
virObjectUnlock(mgr);
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
if (!mgr->drv->domainGetSecurityProcessLabel) {
|
||||||
virReportUnsupportedError();
|
virReportUnsupportedError();
|
||||||
return -1;
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return mgr->drv->domainGetSecurityProcessLabel(mgr, vm, pid, sec);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -914,16 +871,14 @@ int
|
|||||||
virSecurityManagerSetProcessLabel(virSecurityManager *mgr,
|
virSecurityManagerSetProcessLabel(virSecurityManager *mgr,
|
||||||
virDomainDef *vm)
|
virDomainDef *vm)
|
||||||
{
|
{
|
||||||
if (mgr->drv->domainSetSecurityProcessLabel) {
|
VIR_LOCK_GUARD lock = virObjectLockGuard(mgr);
|
||||||
int ret;
|
|
||||||
virObjectLock(mgr);
|
|
||||||
ret = mgr->drv->domainSetSecurityProcessLabel(mgr, vm);
|
|
||||||
virObjectUnlock(mgr);
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
if (!mgr->drv->domainSetSecurityProcessLabel) {
|
||||||
virReportUnsupportedError();
|
virReportUnsupportedError();
|
||||||
return -1;
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return mgr->drv->domainSetSecurityProcessLabel(mgr, vm);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -957,12 +912,10 @@ virSecurityManagerVerify(virSecurityManager *mgr,
|
|||||||
if (secdef == NULL || secdef->model == NULL)
|
if (secdef == NULL || secdef->model == NULL)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
VIR_WITH_OBJECT_LOCK_GUARD(mgr) {
|
||||||
if (mgr->drv->domainSecurityVerify) {
|
if (mgr->drv->domainSecurityVerify) {
|
||||||
int ret;
|
return mgr->drv->domainSecurityVerify(mgr, def);
|
||||||
virObjectLock(mgr);
|
}
|
||||||
ret = mgr->drv->domainSecurityVerify(mgr, def);
|
|
||||||
virObjectUnlock(mgr);
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
virReportUnsupportedError();
|
virReportUnsupportedError();
|
||||||
@ -975,16 +928,14 @@ virSecurityManagerSetImageFDLabel(virSecurityManager *mgr,
|
|||||||
virDomainDef *vm,
|
virDomainDef *vm,
|
||||||
int fd)
|
int fd)
|
||||||
{
|
{
|
||||||
if (mgr->drv->domainSetSecurityImageFDLabel) {
|
VIR_LOCK_GUARD lock = virObjectLockGuard(mgr);
|
||||||
int ret;
|
|
||||||
virObjectLock(mgr);
|
|
||||||
ret = mgr->drv->domainSetSecurityImageFDLabel(mgr, vm, fd);
|
|
||||||
virObjectUnlock(mgr);
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
if (!mgr->drv->domainSetSecurityImageFDLabel) {
|
||||||
virReportUnsupportedError();
|
virReportUnsupportedError();
|
||||||
return -1;
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return mgr->drv->domainSetSecurityImageFDLabel(mgr, vm, fd);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -993,16 +944,14 @@ virSecurityManagerSetTapFDLabel(virSecurityManager *mgr,
|
|||||||
virDomainDef *vm,
|
virDomainDef *vm,
|
||||||
int fd)
|
int fd)
|
||||||
{
|
{
|
||||||
if (mgr->drv->domainSetSecurityTapFDLabel) {
|
VIR_LOCK_GUARD lock = virObjectLockGuard(mgr);
|
||||||
int ret;
|
|
||||||
virObjectLock(mgr);
|
|
||||||
ret = mgr->drv->domainSetSecurityTapFDLabel(mgr, vm, fd);
|
|
||||||
virObjectUnlock(mgr);
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
if (!mgr->drv->domainSetSecurityTapFDLabel) {
|
||||||
virReportUnsupportedError();
|
virReportUnsupportedError();
|
||||||
return -1;
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return mgr->drv->domainSetSecurityTapFDLabel(mgr, vm, fd);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1010,16 +959,14 @@ char *
|
|||||||
virSecurityManagerGetMountOptions(virSecurityManager *mgr,
|
virSecurityManagerGetMountOptions(virSecurityManager *mgr,
|
||||||
virDomainDef *vm)
|
virDomainDef *vm)
|
||||||
{
|
{
|
||||||
if (mgr->drv->domainGetSecurityMountOptions) {
|
VIR_LOCK_GUARD lock = virObjectLockGuard(mgr);
|
||||||
char *ret;
|
|
||||||
virObjectLock(mgr);
|
|
||||||
ret = mgr->drv->domainGetSecurityMountOptions(mgr, vm);
|
|
||||||
virObjectUnlock(mgr);
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
if (!mgr->drv->domainGetSecurityMountOptions) {
|
||||||
virReportUnsupportedError();
|
virReportUnsupportedError();
|
||||||
return NULL;
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
return mgr->drv->domainGetSecurityMountOptions(mgr, vm);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1059,15 +1006,12 @@ virSecurityManagerDomainSetPathLabel(virSecurityManager *mgr,
|
|||||||
const char *path,
|
const char *path,
|
||||||
bool allowSubtree)
|
bool allowSubtree)
|
||||||
{
|
{
|
||||||
if (mgr->drv->domainSetPathLabel) {
|
VIR_LOCK_GUARD lock = virObjectLockGuard(mgr);
|
||||||
int ret;
|
|
||||||
virObjectLock(mgr);
|
|
||||||
ret = mgr->drv->domainSetPathLabel(mgr, vm, path, allowSubtree);
|
|
||||||
virObjectUnlock(mgr);
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
if (!mgr->drv->domainSetPathLabel)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
return mgr->drv->domainSetPathLabel(mgr, vm, path, allowSubtree);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1088,15 +1032,12 @@ virSecurityManagerDomainSetPathLabelRO(virSecurityManager *mgr,
|
|||||||
virDomainDef *vm,
|
virDomainDef *vm,
|
||||||
const char *path)
|
const char *path)
|
||||||
{
|
{
|
||||||
if (mgr->drv->domainSetPathLabelRO) {
|
VIR_LOCK_GUARD lock = virObjectLockGuard(mgr);
|
||||||
int ret;
|
|
||||||
virObjectLock(mgr);
|
|
||||||
ret = mgr->drv->domainSetPathLabelRO(mgr, vm, path);
|
|
||||||
virObjectUnlock(mgr);
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
if (!mgr->drv->domainSetPathLabelRO)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
return mgr->drv->domainSetPathLabelRO(mgr, vm, path);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1115,15 +1056,12 @@ virSecurityManagerDomainRestorePathLabel(virSecurityManager *mgr,
|
|||||||
virDomainDef *vm,
|
virDomainDef *vm,
|
||||||
const char *path)
|
const char *path)
|
||||||
{
|
{
|
||||||
if (mgr->drv->domainRestorePathLabel) {
|
VIR_LOCK_GUARD lock = virObjectLockGuard(mgr);
|
||||||
int ret;
|
|
||||||
virObjectLock(mgr);
|
|
||||||
ret = mgr->drv->domainRestorePathLabel(mgr, vm, path);
|
|
||||||
virObjectUnlock(mgr);
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
if (!mgr->drv->domainRestorePathLabel)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
return mgr->drv->domainRestorePathLabel(mgr, vm, path);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1143,16 +1081,14 @@ virSecurityManagerSetMemoryLabel(virSecurityManager *mgr,
|
|||||||
virDomainDef *vm,
|
virDomainDef *vm,
|
||||||
virDomainMemoryDef *mem)
|
virDomainMemoryDef *mem)
|
||||||
{
|
{
|
||||||
if (mgr->drv->domainSetSecurityMemoryLabel) {
|
VIR_LOCK_GUARD lock = virObjectLockGuard(mgr);
|
||||||
int ret;
|
|
||||||
virObjectLock(mgr);
|
|
||||||
ret = mgr->drv->domainSetSecurityMemoryLabel(mgr, vm, mem);
|
|
||||||
virObjectUnlock(mgr);
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
if (!mgr->drv->domainSetSecurityMemoryLabel) {
|
||||||
virReportUnsupportedError();
|
virReportUnsupportedError();
|
||||||
return -1;
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return mgr->drv->domainSetSecurityMemoryLabel(mgr, vm, mem);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1171,16 +1107,14 @@ virSecurityManagerRestoreMemoryLabel(virSecurityManager *mgr,
|
|||||||
virDomainDef *vm,
|
virDomainDef *vm,
|
||||||
virDomainMemoryDef *mem)
|
virDomainMemoryDef *mem)
|
||||||
{
|
{
|
||||||
if (mgr->drv->domainRestoreSecurityMemoryLabel) {
|
VIR_LOCK_GUARD lock = virObjectLockGuard(mgr);
|
||||||
int ret;
|
|
||||||
virObjectLock(mgr);
|
|
||||||
ret = mgr->drv->domainRestoreSecurityMemoryLabel(mgr, vm, mem);
|
|
||||||
virObjectUnlock(mgr);
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
if (!mgr->drv->domainRestoreSecurityMemoryLabel) {
|
||||||
virReportUnsupportedError();
|
virReportUnsupportedError();
|
||||||
return -1;
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return mgr->drv->domainRestoreSecurityMemoryLabel(mgr, vm, mem);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1189,16 +1123,14 @@ virSecurityManagerSetInputLabel(virSecurityManager *mgr,
|
|||||||
virDomainDef *vm,
|
virDomainDef *vm,
|
||||||
virDomainInputDef *input)
|
virDomainInputDef *input)
|
||||||
{
|
{
|
||||||
if (mgr->drv->domainSetSecurityInputLabel) {
|
VIR_LOCK_GUARD lock = virObjectLockGuard(mgr);
|
||||||
int ret;
|
|
||||||
virObjectLock(mgr);
|
|
||||||
ret = mgr->drv->domainSetSecurityInputLabel(mgr, vm, input);
|
|
||||||
virObjectUnlock(mgr);
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
if (!mgr->drv->domainSetSecurityInputLabel) {
|
||||||
virReportUnsupportedError();
|
virReportUnsupportedError();
|
||||||
return -1;
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return mgr->drv->domainSetSecurityInputLabel(mgr, vm, input);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1207,16 +1139,14 @@ virSecurityManagerRestoreInputLabel(virSecurityManager *mgr,
|
|||||||
virDomainDef *vm,
|
virDomainDef *vm,
|
||||||
virDomainInputDef *input)
|
virDomainInputDef *input)
|
||||||
{
|
{
|
||||||
if (mgr->drv->domainRestoreSecurityInputLabel) {
|
VIR_LOCK_GUARD lock = virObjectLockGuard(mgr);
|
||||||
int ret;
|
|
||||||
virObjectLock(mgr);
|
|
||||||
ret = mgr->drv->domainRestoreSecurityInputLabel(mgr, vm, input);
|
|
||||||
virObjectUnlock(mgr);
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
if (!mgr->drv->domainRestoreSecurityInputLabel) {
|
||||||
virReportUnsupportedError();
|
virReportUnsupportedError();
|
||||||
return -1;
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return mgr->drv->domainRestoreSecurityInputLabel(mgr, vm, input);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1226,17 +1156,15 @@ virSecurityManagerSetChardevLabel(virSecurityManager *mgr,
|
|||||||
virDomainChrSourceDef *dev_source,
|
virDomainChrSourceDef *dev_source,
|
||||||
bool chardevStdioLogd)
|
bool chardevStdioLogd)
|
||||||
{
|
{
|
||||||
if (mgr->drv->domainSetSecurityChardevLabel) {
|
VIR_LOCK_GUARD lock = virObjectLockGuard(mgr);
|
||||||
int ret;
|
|
||||||
virObjectLock(mgr);
|
|
||||||
ret = mgr->drv->domainSetSecurityChardevLabel(mgr, def, dev_source,
|
|
||||||
chardevStdioLogd);
|
|
||||||
virObjectUnlock(mgr);
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
if (!mgr->drv->domainSetSecurityChardevLabel) {
|
||||||
virReportUnsupportedError();
|
virReportUnsupportedError();
|
||||||
return -1;
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return mgr->drv->domainSetSecurityChardevLabel(mgr, def, dev_source,
|
||||||
|
chardevStdioLogd);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1246,17 +1174,15 @@ virSecurityManagerRestoreChardevLabel(virSecurityManager *mgr,
|
|||||||
virDomainChrSourceDef *dev_source,
|
virDomainChrSourceDef *dev_source,
|
||||||
bool chardevStdioLogd)
|
bool chardevStdioLogd)
|
||||||
{
|
{
|
||||||
if (mgr->drv->domainRestoreSecurityChardevLabel) {
|
VIR_LOCK_GUARD lock = virObjectLockGuard(mgr);
|
||||||
int ret;
|
|
||||||
virObjectLock(mgr);
|
|
||||||
ret = mgr->drv->domainRestoreSecurityChardevLabel(mgr, def, dev_source,
|
|
||||||
chardevStdioLogd);
|
|
||||||
virObjectUnlock(mgr);
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
if (!mgr->drv->domainRestoreSecurityChardevLabel) {
|
||||||
virReportUnsupportedError();
|
virReportUnsupportedError();
|
||||||
return -1;
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return mgr->drv->domainRestoreSecurityChardevLabel(mgr, def, dev_source,
|
||||||
|
chardevStdioLogd);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1264,17 +1190,12 @@ int
|
|||||||
virSecurityManagerSetTPMLabels(virSecurityManager *mgr,
|
virSecurityManagerSetTPMLabels(virSecurityManager *mgr,
|
||||||
virDomainDef *vm)
|
virDomainDef *vm)
|
||||||
{
|
{
|
||||||
int ret;
|
VIR_LOCK_GUARD lock = virObjectLockGuard(mgr);
|
||||||
|
|
||||||
if (mgr->drv->domainSetSecurityTPMLabels) {
|
|
||||||
virObjectLock(mgr);
|
|
||||||
ret = mgr->drv->domainSetSecurityTPMLabels(mgr, vm);
|
|
||||||
virObjectUnlock(mgr);
|
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
if (!mgr->drv->domainSetSecurityTPMLabels)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
return mgr->drv->domainSetSecurityTPMLabels(mgr, vm);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1282,17 +1203,12 @@ int
|
|||||||
virSecurityManagerRestoreTPMLabels(virSecurityManager *mgr,
|
virSecurityManagerRestoreTPMLabels(virSecurityManager *mgr,
|
||||||
virDomainDef *vm)
|
virDomainDef *vm)
|
||||||
{
|
{
|
||||||
int ret;
|
VIR_LOCK_GUARD lock = virObjectLockGuard(mgr);
|
||||||
|
|
||||||
if (mgr->drv->domainRestoreSecurityTPMLabels) {
|
|
||||||
virObjectLock(mgr);
|
|
||||||
ret = mgr->drv->domainRestoreSecurityTPMLabels(mgr, vm);
|
|
||||||
virObjectUnlock(mgr);
|
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
if (!mgr->drv->domainRestoreSecurityTPMLabels)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
return mgr->drv->domainRestoreSecurityTPMLabels(mgr, vm);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1301,17 +1217,12 @@ virSecurityManagerSetNetdevLabel(virSecurityManager *mgr,
|
|||||||
virDomainDef *vm,
|
virDomainDef *vm,
|
||||||
virDomainNetDef *net)
|
virDomainNetDef *net)
|
||||||
{
|
{
|
||||||
int ret;
|
VIR_LOCK_GUARD lock = virObjectLockGuard(mgr);
|
||||||
|
|
||||||
if (mgr->drv->domainSetSecurityNetdevLabel) {
|
|
||||||
virObjectLock(mgr);
|
|
||||||
ret = mgr->drv->domainSetSecurityNetdevLabel(mgr, vm, net);
|
|
||||||
virObjectUnlock(mgr);
|
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
if (!mgr->drv->domainSetSecurityNetdevLabel)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
return mgr->drv->domainSetSecurityNetdevLabel(mgr, vm, net);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1320,17 +1231,12 @@ virSecurityManagerRestoreNetdevLabel(virSecurityManager *mgr,
|
|||||||
virDomainDef *vm,
|
virDomainDef *vm,
|
||||||
virDomainNetDef *net)
|
virDomainNetDef *net)
|
||||||
{
|
{
|
||||||
int ret;
|
VIR_LOCK_GUARD lock = virObjectLockGuard(mgr);
|
||||||
|
|
||||||
if (mgr->drv->domainRestoreSecurityNetdevLabel) {
|
|
||||||
virObjectLock(mgr);
|
|
||||||
ret = mgr->drv->domainRestoreSecurityNetdevLabel(mgr, vm, net);
|
|
||||||
virObjectUnlock(mgr);
|
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
if (!mgr->drv->domainRestoreSecurityNetdevLabel)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
return mgr->drv->domainRestoreSecurityNetdevLabel(mgr, vm, net);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user