diff options
author | rwatson <rwatson@FreeBSD.org> | 2002-10-27 06:54:06 +0000 |
---|---|---|
committer | rwatson <rwatson@FreeBSD.org> | 2002-10-27 06:54:06 +0000 |
commit | 8cd9e638192b755dfb25a68d8cef5abe0c9e00be (patch) | |
tree | 1612d5b0cc84eb1545dbda241cb9bb8369f47bd2 | |
parent | 09dbfe82dc55ef20e7c63a4c84529f2efcda0c9c (diff) | |
download | FreeBSD-src-8cd9e638192b755dfb25a68d8cef5abe0c9e00be.zip FreeBSD-src-8cd9e638192b755dfb25a68d8cef5abe0c9e00be.tar.gz |
Merge from MAC tree: rename mac_check_vnode_swapon() to
mac_check_system_swapon(), to reflect the fact that the primary
object of this change is the running kernel as a whole, rather
than just the vnode. We'll drop additional checks of this
class into the same check namespace, including reboot(),
sysctl(), et al.
Obtained from: TrustedBSD Project
Sponsored by: DARPA, Network Associates Laboratories
-rw-r--r-- | sys/kern/kern_mac.c | 36 | ||||
-rw-r--r-- | sys/security/mac/mac_framework.c | 36 | ||||
-rw-r--r-- | sys/security/mac/mac_framework.h | 2 | ||||
-rw-r--r-- | sys/security/mac/mac_internal.h | 36 | ||||
-rw-r--r-- | sys/security/mac/mac_net.c | 36 | ||||
-rw-r--r-- | sys/security/mac/mac_pipe.c | 36 | ||||
-rw-r--r-- | sys/security/mac/mac_policy.h | 6 | ||||
-rw-r--r-- | sys/security/mac/mac_process.c | 36 | ||||
-rw-r--r-- | sys/security/mac/mac_syscalls.c | 36 | ||||
-rw-r--r-- | sys/security/mac/mac_system.c | 36 | ||||
-rw-r--r-- | sys/security/mac/mac_vfs.c | 36 | ||||
-rw-r--r-- | sys/sys/mac.h | 2 | ||||
-rw-r--r-- | sys/sys/mac_policy.h | 6 | ||||
-rw-r--r-- | sys/vm/vm_swap.c | 2 |
14 files changed, 171 insertions, 171 deletions
diff --git a/sys/kern/kern_mac.c b/sys/kern/kern_mac.c index 2ff4162..b757be6 100644 --- a/sys/kern/kern_mac.c +++ b/sys/kern/kern_mac.c @@ -899,6 +899,10 @@ mac_policy_register(struct mac_policy_conf *mpc) mpc->mpc_ops->mpo_check_socket_visible = mpe->mpe_function; break; + case MAC_CHECK_SYSTEM_SWAPON: + mpc->mpc_ops->mpo_check_system_swapon = + mpe->mpe_function; + break; case MAC_CHECK_VNODE_ACCESS: mpc->mpc_ops->mpo_check_vnode_access = mpe->mpe_function; @@ -1019,10 +1023,6 @@ mac_policy_register(struct mac_policy_conf *mpc) mpc->mpc_ops->mpo_check_vnode_stat = mpe->mpe_function; break; - case MAC_CHECK_VNODE_SWAPON: - mpc->mpc_ops->mpo_check_vnode_swapon = - mpe->mpe_function; - break; case MAC_CHECK_VNODE_WRITE: mpc->mpc_ops->mpo_check_vnode_write = mpe->mpe_function; @@ -2304,20 +2304,6 @@ mac_check_vnode_stat(struct ucred *active_cred, struct ucred *file_cred, } int -mac_check_vnode_swapon(struct ucred *cred, struct vnode *vp) -{ - int error; - - ASSERT_VOP_LOCKED(vp, "mac_check_vnode_swapon"); - - if (!mac_enforce_fs) - return (0); - - MAC_CHECK(check_vnode_swapon, cred, vp, &vp->v_label); - return (error); -} - -int mac_check_vnode_write(struct ucred *active_cred, struct ucred *file_cred, struct vnode *vp) { @@ -3011,6 +2997,20 @@ mac_check_socket_visible(struct ucred *cred, struct socket *socket) } int +mac_check_system_swapon(struct ucred *cred, struct vnode *vp) +{ + int error; + + ASSERT_VOP_LOCKED(vp, "mac_check_system_swapon"); + + if (!mac_enforce_fs) + return (0); + + MAC_CHECK(check_system_swapon, cred, vp, &vp->v_label); + return (error); +} + +int mac_ioctl_ifnet_get(struct ucred *cred, struct ifreq *ifr, struct ifnet *ifnet) { diff --git a/sys/security/mac/mac_framework.c b/sys/security/mac/mac_framework.c index 2ff4162..b757be6 100644 --- a/sys/security/mac/mac_framework.c +++ b/sys/security/mac/mac_framework.c @@ -899,6 +899,10 @@ mac_policy_register(struct mac_policy_conf *mpc) mpc->mpc_ops->mpo_check_socket_visible = mpe->mpe_function; break; + case MAC_CHECK_SYSTEM_SWAPON: + mpc->mpc_ops->mpo_check_system_swapon = + mpe->mpe_function; + break; case MAC_CHECK_VNODE_ACCESS: mpc->mpc_ops->mpo_check_vnode_access = mpe->mpe_function; @@ -1019,10 +1023,6 @@ mac_policy_register(struct mac_policy_conf *mpc) mpc->mpc_ops->mpo_check_vnode_stat = mpe->mpe_function; break; - case MAC_CHECK_VNODE_SWAPON: - mpc->mpc_ops->mpo_check_vnode_swapon = - mpe->mpe_function; - break; case MAC_CHECK_VNODE_WRITE: mpc->mpc_ops->mpo_check_vnode_write = mpe->mpe_function; @@ -2304,20 +2304,6 @@ mac_check_vnode_stat(struct ucred *active_cred, struct ucred *file_cred, } int -mac_check_vnode_swapon(struct ucred *cred, struct vnode *vp) -{ - int error; - - ASSERT_VOP_LOCKED(vp, "mac_check_vnode_swapon"); - - if (!mac_enforce_fs) - return (0); - - MAC_CHECK(check_vnode_swapon, cred, vp, &vp->v_label); - return (error); -} - -int mac_check_vnode_write(struct ucred *active_cred, struct ucred *file_cred, struct vnode *vp) { @@ -3011,6 +2997,20 @@ mac_check_socket_visible(struct ucred *cred, struct socket *socket) } int +mac_check_system_swapon(struct ucred *cred, struct vnode *vp) +{ + int error; + + ASSERT_VOP_LOCKED(vp, "mac_check_system_swapon"); + + if (!mac_enforce_fs) + return (0); + + MAC_CHECK(check_system_swapon, cred, vp, &vp->v_label); + return (error); +} + +int mac_ioctl_ifnet_get(struct ucred *cred, struct ifreq *ifr, struct ifnet *ifnet) { diff --git a/sys/security/mac/mac_framework.h b/sys/security/mac/mac_framework.h index cc9552b..a0c3ebe 100644 --- a/sys/security/mac/mac_framework.h +++ b/sys/security/mac/mac_framework.h @@ -297,6 +297,7 @@ int mac_check_socket_listen(struct ucred *cred, struct socket *so); int mac_check_socket_receive(struct ucred *cred, struct socket *so); int mac_check_socket_send(struct ucred *cred, struct socket *so); int mac_check_socket_visible(struct ucred *cred, struct socket *so); +int mac_check_system_swapon(struct ucred *cred, struct vnode *vp); int mac_check_vnode_access(struct ucred *cred, struct vnode *vp, int flags); int mac_check_vnode_chdir(struct ucred *cred, struct vnode *dvp); @@ -347,7 +348,6 @@ int mac_check_vnode_setutimes(struct ucred *cred, struct vnode *vp, struct timespec atime, struct timespec mtime); int mac_check_vnode_stat(struct ucred *active_cred, struct ucred *file_cred, struct vnode *vp); -int mac_check_vnode_swapon(struct ucred *cred, struct vnode *vp); int mac_check_vnode_write(struct ucred *active_cred, struct ucred *file_cred, struct vnode *vp); int mac_getsockopt_label_get(struct ucred *cred, struct socket *so, diff --git a/sys/security/mac/mac_internal.h b/sys/security/mac/mac_internal.h index 2ff4162..b757be6 100644 --- a/sys/security/mac/mac_internal.h +++ b/sys/security/mac/mac_internal.h @@ -899,6 +899,10 @@ mac_policy_register(struct mac_policy_conf *mpc) mpc->mpc_ops->mpo_check_socket_visible = mpe->mpe_function; break; + case MAC_CHECK_SYSTEM_SWAPON: + mpc->mpc_ops->mpo_check_system_swapon = + mpe->mpe_function; + break; case MAC_CHECK_VNODE_ACCESS: mpc->mpc_ops->mpo_check_vnode_access = mpe->mpe_function; @@ -1019,10 +1023,6 @@ mac_policy_register(struct mac_policy_conf *mpc) mpc->mpc_ops->mpo_check_vnode_stat = mpe->mpe_function; break; - case MAC_CHECK_VNODE_SWAPON: - mpc->mpc_ops->mpo_check_vnode_swapon = - mpe->mpe_function; - break; case MAC_CHECK_VNODE_WRITE: mpc->mpc_ops->mpo_check_vnode_write = mpe->mpe_function; @@ -2304,20 +2304,6 @@ mac_check_vnode_stat(struct ucred *active_cred, struct ucred *file_cred, } int -mac_check_vnode_swapon(struct ucred *cred, struct vnode *vp) -{ - int error; - - ASSERT_VOP_LOCKED(vp, "mac_check_vnode_swapon"); - - if (!mac_enforce_fs) - return (0); - - MAC_CHECK(check_vnode_swapon, cred, vp, &vp->v_label); - return (error); -} - -int mac_check_vnode_write(struct ucred *active_cred, struct ucred *file_cred, struct vnode *vp) { @@ -3011,6 +2997,20 @@ mac_check_socket_visible(struct ucred *cred, struct socket *socket) } int +mac_check_system_swapon(struct ucred *cred, struct vnode *vp) +{ + int error; + + ASSERT_VOP_LOCKED(vp, "mac_check_system_swapon"); + + if (!mac_enforce_fs) + return (0); + + MAC_CHECK(check_system_swapon, cred, vp, &vp->v_label); + return (error); +} + +int mac_ioctl_ifnet_get(struct ucred *cred, struct ifreq *ifr, struct ifnet *ifnet) { diff --git a/sys/security/mac/mac_net.c b/sys/security/mac/mac_net.c index 2ff4162..b757be6 100644 --- a/sys/security/mac/mac_net.c +++ b/sys/security/mac/mac_net.c @@ -899,6 +899,10 @@ mac_policy_register(struct mac_policy_conf *mpc) mpc->mpc_ops->mpo_check_socket_visible = mpe->mpe_function; break; + case MAC_CHECK_SYSTEM_SWAPON: + mpc->mpc_ops->mpo_check_system_swapon = + mpe->mpe_function; + break; case MAC_CHECK_VNODE_ACCESS: mpc->mpc_ops->mpo_check_vnode_access = mpe->mpe_function; @@ -1019,10 +1023,6 @@ mac_policy_register(struct mac_policy_conf *mpc) mpc->mpc_ops->mpo_check_vnode_stat = mpe->mpe_function; break; - case MAC_CHECK_VNODE_SWAPON: - mpc->mpc_ops->mpo_check_vnode_swapon = - mpe->mpe_function; - break; case MAC_CHECK_VNODE_WRITE: mpc->mpc_ops->mpo_check_vnode_write = mpe->mpe_function; @@ -2304,20 +2304,6 @@ mac_check_vnode_stat(struct ucred *active_cred, struct ucred *file_cred, } int -mac_check_vnode_swapon(struct ucred *cred, struct vnode *vp) -{ - int error; - - ASSERT_VOP_LOCKED(vp, "mac_check_vnode_swapon"); - - if (!mac_enforce_fs) - return (0); - - MAC_CHECK(check_vnode_swapon, cred, vp, &vp->v_label); - return (error); -} - -int mac_check_vnode_write(struct ucred *active_cred, struct ucred *file_cred, struct vnode *vp) { @@ -3011,6 +2997,20 @@ mac_check_socket_visible(struct ucred *cred, struct socket *socket) } int +mac_check_system_swapon(struct ucred *cred, struct vnode *vp) +{ + int error; + + ASSERT_VOP_LOCKED(vp, "mac_check_system_swapon"); + + if (!mac_enforce_fs) + return (0); + + MAC_CHECK(check_system_swapon, cred, vp, &vp->v_label); + return (error); +} + +int mac_ioctl_ifnet_get(struct ucred *cred, struct ifreq *ifr, struct ifnet *ifnet) { diff --git a/sys/security/mac/mac_pipe.c b/sys/security/mac/mac_pipe.c index 2ff4162..b757be6 100644 --- a/sys/security/mac/mac_pipe.c +++ b/sys/security/mac/mac_pipe.c @@ -899,6 +899,10 @@ mac_policy_register(struct mac_policy_conf *mpc) mpc->mpc_ops->mpo_check_socket_visible = mpe->mpe_function; break; + case MAC_CHECK_SYSTEM_SWAPON: + mpc->mpc_ops->mpo_check_system_swapon = + mpe->mpe_function; + break; case MAC_CHECK_VNODE_ACCESS: mpc->mpc_ops->mpo_check_vnode_access = mpe->mpe_function; @@ -1019,10 +1023,6 @@ mac_policy_register(struct mac_policy_conf *mpc) mpc->mpc_ops->mpo_check_vnode_stat = mpe->mpe_function; break; - case MAC_CHECK_VNODE_SWAPON: - mpc->mpc_ops->mpo_check_vnode_swapon = - mpe->mpe_function; - break; case MAC_CHECK_VNODE_WRITE: mpc->mpc_ops->mpo_check_vnode_write = mpe->mpe_function; @@ -2304,20 +2304,6 @@ mac_check_vnode_stat(struct ucred *active_cred, struct ucred *file_cred, } int -mac_check_vnode_swapon(struct ucred *cred, struct vnode *vp) -{ - int error; - - ASSERT_VOP_LOCKED(vp, "mac_check_vnode_swapon"); - - if (!mac_enforce_fs) - return (0); - - MAC_CHECK(check_vnode_swapon, cred, vp, &vp->v_label); - return (error); -} - -int mac_check_vnode_write(struct ucred *active_cred, struct ucred *file_cred, struct vnode *vp) { @@ -3011,6 +2997,20 @@ mac_check_socket_visible(struct ucred *cred, struct socket *socket) } int +mac_check_system_swapon(struct ucred *cred, struct vnode *vp) +{ + int error; + + ASSERT_VOP_LOCKED(vp, "mac_check_system_swapon"); + + if (!mac_enforce_fs) + return (0); + + MAC_CHECK(check_system_swapon, cred, vp, &vp->v_label); + return (error); +} + +int mac_ioctl_ifnet_get(struct ucred *cred, struct ifreq *ifr, struct ifnet *ifnet) { diff --git a/sys/security/mac/mac_policy.h b/sys/security/mac/mac_policy.h index 46c4c1b..72da14f 100644 --- a/sys/security/mac/mac_policy.h +++ b/sys/security/mac/mac_policy.h @@ -310,6 +310,8 @@ struct mac_policy_ops { struct socket *so, struct label *socketlabel); int (*mpo_check_socket_visible)(struct ucred *cred, struct socket *so, struct label *socketlabel); + int (*mpo_check_system_swapon)(struct ucred *cred, + struct vnode *vp, struct label *label); int (*mpo_check_vnode_access)(struct ucred *cred, struct vnode *vp, struct label *label, int flags); int (*mpo_check_vnode_chdir)(struct ucred *cred, @@ -386,8 +388,6 @@ struct mac_policy_ops { int (*mpo_check_vnode_stat)(struct ucred *active_cred, struct ucred *file_cred, struct vnode *vp, struct label *label); - int (*mpo_check_vnode_swapon)(struct ucred *cred, - struct vnode *vp, struct label *label); int (*mpo_check_vnode_write)(struct ucred *active_cred, struct ucred *file_cred, struct vnode *vp, struct label *label); @@ -502,6 +502,7 @@ enum mac_op_constant { MAC_CHECK_SOCKET_RELABEL, MAC_CHECK_SOCKET_SEND, MAC_CHECK_SOCKET_VISIBLE, + MAC_CHECK_SYSTEM_SWAPON, MAC_CHECK_VNODE_ACCESS, MAC_CHECK_VNODE_CHDIR, MAC_CHECK_VNODE_CHROOT, @@ -532,7 +533,6 @@ enum mac_op_constant { MAC_CHECK_VNODE_SETOWNER, MAC_CHECK_VNODE_SETUTIMES, MAC_CHECK_VNODE_STAT, - MAC_CHECK_VNODE_SWAPON, MAC_CHECK_VNODE_WRITE, }; diff --git a/sys/security/mac/mac_process.c b/sys/security/mac/mac_process.c index 2ff4162..b757be6 100644 --- a/sys/security/mac/mac_process.c +++ b/sys/security/mac/mac_process.c @@ -899,6 +899,10 @@ mac_policy_register(struct mac_policy_conf *mpc) mpc->mpc_ops->mpo_check_socket_visible = mpe->mpe_function; break; + case MAC_CHECK_SYSTEM_SWAPON: + mpc->mpc_ops->mpo_check_system_swapon = + mpe->mpe_function; + break; case MAC_CHECK_VNODE_ACCESS: mpc->mpc_ops->mpo_check_vnode_access = mpe->mpe_function; @@ -1019,10 +1023,6 @@ mac_policy_register(struct mac_policy_conf *mpc) mpc->mpc_ops->mpo_check_vnode_stat = mpe->mpe_function; break; - case MAC_CHECK_VNODE_SWAPON: - mpc->mpc_ops->mpo_check_vnode_swapon = - mpe->mpe_function; - break; case MAC_CHECK_VNODE_WRITE: mpc->mpc_ops->mpo_check_vnode_write = mpe->mpe_function; @@ -2304,20 +2304,6 @@ mac_check_vnode_stat(struct ucred *active_cred, struct ucred *file_cred, } int -mac_check_vnode_swapon(struct ucred *cred, struct vnode *vp) -{ - int error; - - ASSERT_VOP_LOCKED(vp, "mac_check_vnode_swapon"); - - if (!mac_enforce_fs) - return (0); - - MAC_CHECK(check_vnode_swapon, cred, vp, &vp->v_label); - return (error); -} - -int mac_check_vnode_write(struct ucred *active_cred, struct ucred *file_cred, struct vnode *vp) { @@ -3011,6 +2997,20 @@ mac_check_socket_visible(struct ucred *cred, struct socket *socket) } int +mac_check_system_swapon(struct ucred *cred, struct vnode *vp) +{ + int error; + + ASSERT_VOP_LOCKED(vp, "mac_check_system_swapon"); + + if (!mac_enforce_fs) + return (0); + + MAC_CHECK(check_system_swapon, cred, vp, &vp->v_label); + return (error); +} + +int mac_ioctl_ifnet_get(struct ucred *cred, struct ifreq *ifr, struct ifnet *ifnet) { diff --git a/sys/security/mac/mac_syscalls.c b/sys/security/mac/mac_syscalls.c index 2ff4162..b757be6 100644 --- a/sys/security/mac/mac_syscalls.c +++ b/sys/security/mac/mac_syscalls.c @@ -899,6 +899,10 @@ mac_policy_register(struct mac_policy_conf *mpc) mpc->mpc_ops->mpo_check_socket_visible = mpe->mpe_function; break; + case MAC_CHECK_SYSTEM_SWAPON: + mpc->mpc_ops->mpo_check_system_swapon = + mpe->mpe_function; + break; case MAC_CHECK_VNODE_ACCESS: mpc->mpc_ops->mpo_check_vnode_access = mpe->mpe_function; @@ -1019,10 +1023,6 @@ mac_policy_register(struct mac_policy_conf *mpc) mpc->mpc_ops->mpo_check_vnode_stat = mpe->mpe_function; break; - case MAC_CHECK_VNODE_SWAPON: - mpc->mpc_ops->mpo_check_vnode_swapon = - mpe->mpe_function; - break; case MAC_CHECK_VNODE_WRITE: mpc->mpc_ops->mpo_check_vnode_write = mpe->mpe_function; @@ -2304,20 +2304,6 @@ mac_check_vnode_stat(struct ucred *active_cred, struct ucred *file_cred, } int -mac_check_vnode_swapon(struct ucred *cred, struct vnode *vp) -{ - int error; - - ASSERT_VOP_LOCKED(vp, "mac_check_vnode_swapon"); - - if (!mac_enforce_fs) - return (0); - - MAC_CHECK(check_vnode_swapon, cred, vp, &vp->v_label); - return (error); -} - -int mac_check_vnode_write(struct ucred *active_cred, struct ucred *file_cred, struct vnode *vp) { @@ -3011,6 +2997,20 @@ mac_check_socket_visible(struct ucred *cred, struct socket *socket) } int +mac_check_system_swapon(struct ucred *cred, struct vnode *vp) +{ + int error; + + ASSERT_VOP_LOCKED(vp, "mac_check_system_swapon"); + + if (!mac_enforce_fs) + return (0); + + MAC_CHECK(check_system_swapon, cred, vp, &vp->v_label); + return (error); +} + +int mac_ioctl_ifnet_get(struct ucred *cred, struct ifreq *ifr, struct ifnet *ifnet) { diff --git a/sys/security/mac/mac_system.c b/sys/security/mac/mac_system.c index 2ff4162..b757be6 100644 --- a/sys/security/mac/mac_system.c +++ b/sys/security/mac/mac_system.c @@ -899,6 +899,10 @@ mac_policy_register(struct mac_policy_conf *mpc) mpc->mpc_ops->mpo_check_socket_visible = mpe->mpe_function; break; + case MAC_CHECK_SYSTEM_SWAPON: + mpc->mpc_ops->mpo_check_system_swapon = + mpe->mpe_function; + break; case MAC_CHECK_VNODE_ACCESS: mpc->mpc_ops->mpo_check_vnode_access = mpe->mpe_function; @@ -1019,10 +1023,6 @@ mac_policy_register(struct mac_policy_conf *mpc) mpc->mpc_ops->mpo_check_vnode_stat = mpe->mpe_function; break; - case MAC_CHECK_VNODE_SWAPON: - mpc->mpc_ops->mpo_check_vnode_swapon = - mpe->mpe_function; - break; case MAC_CHECK_VNODE_WRITE: mpc->mpc_ops->mpo_check_vnode_write = mpe->mpe_function; @@ -2304,20 +2304,6 @@ mac_check_vnode_stat(struct ucred *active_cred, struct ucred *file_cred, } int -mac_check_vnode_swapon(struct ucred *cred, struct vnode *vp) -{ - int error; - - ASSERT_VOP_LOCKED(vp, "mac_check_vnode_swapon"); - - if (!mac_enforce_fs) - return (0); - - MAC_CHECK(check_vnode_swapon, cred, vp, &vp->v_label); - return (error); -} - -int mac_check_vnode_write(struct ucred *active_cred, struct ucred *file_cred, struct vnode *vp) { @@ -3011,6 +2997,20 @@ mac_check_socket_visible(struct ucred *cred, struct socket *socket) } int +mac_check_system_swapon(struct ucred *cred, struct vnode *vp) +{ + int error; + + ASSERT_VOP_LOCKED(vp, "mac_check_system_swapon"); + + if (!mac_enforce_fs) + return (0); + + MAC_CHECK(check_system_swapon, cred, vp, &vp->v_label); + return (error); +} + +int mac_ioctl_ifnet_get(struct ucred *cred, struct ifreq *ifr, struct ifnet *ifnet) { diff --git a/sys/security/mac/mac_vfs.c b/sys/security/mac/mac_vfs.c index 2ff4162..b757be6 100644 --- a/sys/security/mac/mac_vfs.c +++ b/sys/security/mac/mac_vfs.c @@ -899,6 +899,10 @@ mac_policy_register(struct mac_policy_conf *mpc) mpc->mpc_ops->mpo_check_socket_visible = mpe->mpe_function; break; + case MAC_CHECK_SYSTEM_SWAPON: + mpc->mpc_ops->mpo_check_system_swapon = + mpe->mpe_function; + break; case MAC_CHECK_VNODE_ACCESS: mpc->mpc_ops->mpo_check_vnode_access = mpe->mpe_function; @@ -1019,10 +1023,6 @@ mac_policy_register(struct mac_policy_conf *mpc) mpc->mpc_ops->mpo_check_vnode_stat = mpe->mpe_function; break; - case MAC_CHECK_VNODE_SWAPON: - mpc->mpc_ops->mpo_check_vnode_swapon = - mpe->mpe_function; - break; case MAC_CHECK_VNODE_WRITE: mpc->mpc_ops->mpo_check_vnode_write = mpe->mpe_function; @@ -2304,20 +2304,6 @@ mac_check_vnode_stat(struct ucred *active_cred, struct ucred *file_cred, } int -mac_check_vnode_swapon(struct ucred *cred, struct vnode *vp) -{ - int error; - - ASSERT_VOP_LOCKED(vp, "mac_check_vnode_swapon"); - - if (!mac_enforce_fs) - return (0); - - MAC_CHECK(check_vnode_swapon, cred, vp, &vp->v_label); - return (error); -} - -int mac_check_vnode_write(struct ucred *active_cred, struct ucred *file_cred, struct vnode *vp) { @@ -3011,6 +2997,20 @@ mac_check_socket_visible(struct ucred *cred, struct socket *socket) } int +mac_check_system_swapon(struct ucred *cred, struct vnode *vp) +{ + int error; + + ASSERT_VOP_LOCKED(vp, "mac_check_system_swapon"); + + if (!mac_enforce_fs) + return (0); + + MAC_CHECK(check_system_swapon, cred, vp, &vp->v_label); + return (error); +} + +int mac_ioctl_ifnet_get(struct ucred *cred, struct ifreq *ifr, struct ifnet *ifnet) { diff --git a/sys/sys/mac.h b/sys/sys/mac.h index cc9552b..a0c3ebe 100644 --- a/sys/sys/mac.h +++ b/sys/sys/mac.h @@ -297,6 +297,7 @@ int mac_check_socket_listen(struct ucred *cred, struct socket *so); int mac_check_socket_receive(struct ucred *cred, struct socket *so); int mac_check_socket_send(struct ucred *cred, struct socket *so); int mac_check_socket_visible(struct ucred *cred, struct socket *so); +int mac_check_system_swapon(struct ucred *cred, struct vnode *vp); int mac_check_vnode_access(struct ucred *cred, struct vnode *vp, int flags); int mac_check_vnode_chdir(struct ucred *cred, struct vnode *dvp); @@ -347,7 +348,6 @@ int mac_check_vnode_setutimes(struct ucred *cred, struct vnode *vp, struct timespec atime, struct timespec mtime); int mac_check_vnode_stat(struct ucred *active_cred, struct ucred *file_cred, struct vnode *vp); -int mac_check_vnode_swapon(struct ucred *cred, struct vnode *vp); int mac_check_vnode_write(struct ucred *active_cred, struct ucred *file_cred, struct vnode *vp); int mac_getsockopt_label_get(struct ucred *cred, struct socket *so, diff --git a/sys/sys/mac_policy.h b/sys/sys/mac_policy.h index 46c4c1b..72da14f 100644 --- a/sys/sys/mac_policy.h +++ b/sys/sys/mac_policy.h @@ -310,6 +310,8 @@ struct mac_policy_ops { struct socket *so, struct label *socketlabel); int (*mpo_check_socket_visible)(struct ucred *cred, struct socket *so, struct label *socketlabel); + int (*mpo_check_system_swapon)(struct ucred *cred, + struct vnode *vp, struct label *label); int (*mpo_check_vnode_access)(struct ucred *cred, struct vnode *vp, struct label *label, int flags); int (*mpo_check_vnode_chdir)(struct ucred *cred, @@ -386,8 +388,6 @@ struct mac_policy_ops { int (*mpo_check_vnode_stat)(struct ucred *active_cred, struct ucred *file_cred, struct vnode *vp, struct label *label); - int (*mpo_check_vnode_swapon)(struct ucred *cred, - struct vnode *vp, struct label *label); int (*mpo_check_vnode_write)(struct ucred *active_cred, struct ucred *file_cred, struct vnode *vp, struct label *label); @@ -502,6 +502,7 @@ enum mac_op_constant { MAC_CHECK_SOCKET_RELABEL, MAC_CHECK_SOCKET_SEND, MAC_CHECK_SOCKET_VISIBLE, + MAC_CHECK_SYSTEM_SWAPON, MAC_CHECK_VNODE_ACCESS, MAC_CHECK_VNODE_CHDIR, MAC_CHECK_VNODE_CHROOT, @@ -532,7 +533,6 @@ enum mac_op_constant { MAC_CHECK_VNODE_SETOWNER, MAC_CHECK_VNODE_SETUTIMES, MAC_CHECK_VNODE_STAT, - MAC_CHECK_VNODE_SWAPON, MAC_CHECK_VNODE_WRITE, }; diff --git a/sys/vm/vm_swap.c b/sys/vm/vm_swap.c index f9355a3..1781182 100644 --- a/sys/vm/vm_swap.c +++ b/sys/vm/vm_swap.c @@ -290,7 +290,7 @@ swaponvp(td, vp, dev, nblks) found: (void) vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, td); #ifdef MAC - error = mac_check_vnode_swapon(td->td_ucred, vp); + error = mac_check_system_swapon(td->td_ucred, vp); if (error == 0) #endif error = VOP_OPEN(vp, FREAD | FWRITE, td->td_ucred, td); |