summaryrefslogtreecommitdiffstats
path: root/sys/security/mac/mac_posix_sem.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/security/mac/mac_posix_sem.c')
-rw-r--r--sys/security/mac/mac_posix_sem.c32
1 files changed, 32 insertions, 0 deletions
diff --git a/sys/security/mac/mac_posix_sem.c b/sys/security/mac/mac_posix_sem.c
index 9035d60..461e5db 100644
--- a/sys/security/mac/mac_posix_sem.c
+++ b/sys/security/mac/mac_posix_sem.c
@@ -198,3 +198,35 @@ mac_posixsem_check_wait(struct ucred *active_cred, struct ucred *file_cred,
return (error);
}
+
+MAC_CHECK_PROBE_DEFINE3(posixsem_check_setmode, "struct ucred *",
+ "struct ksem *", "mode_t");
+
+int
+mac_posixsem_check_setmode(struct ucred *cred, struct ksem *ks, mode_t mode)
+{
+ int error;
+
+ MAC_POLICY_CHECK_NOSLEEP(posixsem_check_setmode, cred, ks,
+ ks->ks_label, mode);
+ MAC_CHECK_PROBE3(posixsem_check_setmode, error, cred, ks, mode);
+
+ return (error);
+}
+
+MAC_CHECK_PROBE_DEFINE4(posixsem_check_setowner, "struct ucred *",
+ "struct ks *", "uid_t", "gid_t");
+
+int
+mac_posixsem_check_setowner(struct ucred *cred, struct ksem *ks, uid_t uid,
+ gid_t gid)
+{
+ int error;
+
+ MAC_POLICY_CHECK_NOSLEEP(posixsem_check_setowner, cred, ks,
+ ks->ks_label, uid, gid);
+ MAC_CHECK_PROBE4(posixsem_check_setowner, error, cred, ks,
+ uid, gid);
+
+ return (error);
+}
OpenPOWER on IntegriCloud