summaryrefslogtreecommitdiff
path: root/sys/security/mac/mac_framework.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/security/mac/mac_framework.c')
-rw-r--r--sys/security/mac/mac_framework.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/sys/security/mac/mac_framework.c b/sys/security/mac/mac_framework.c
index 0bdffc7da6e8..3eed0a668588 100644
--- a/sys/security/mac/mac_framework.c
+++ b/sys/security/mac/mac_framework.c
@@ -144,6 +144,10 @@ SYSCTL_INT(_security_mac, OID_AUTO, enforce_socket, CTLFLAG_RW,
&mac_enforce_socket, 0, "Enforce MAC policy on socket operations");
TUNABLE_INT("security.mac.enforce_socket", &mac_enforce_socket);
+static int mac_enforce_vm = 1;
+SYSCTL_INT(_security_mac, OID_AUTO, enforce_vm, CTLFLAG_RW,
+ &mac_enforce_vm, 0, "Enforce MAC policy on vm operations");
+
static int mac_label_size = sizeof(struct mac);
SYSCTL_INT(_security_mac, OID_AUTO, label_size, CTLFLAG_RD,
&mac_label_size, 0, "Pre-compiled MAC label size");
@@ -1779,6 +1783,9 @@ mac_check_vnode_mmap_prot(struct ucred *cred, struct vnode *vp, int newmapping)
{
vm_prot_t result = VM_PROT_ALL;
+ if (!mac_enforce_vm)
+ return (result);
+
/*
* This should be some sort of MAC_BITWISE, maybe :)
*/