X-Git-Url: https://git.saurik.com/apple/xnu.git/blobdiff_plain/316670eb35587141e969394ae8537d66b9211e80..813fb2f63a553c957e917ede5f119b021d6ce391:/security/mac_system.c?ds=sidebyside diff --git a/security/mac_system.c b/security/mac_system.c index f3de4ca13..bae108765 100644 --- a/security/mac_system.c +++ b/security/mac_system.c @@ -74,8 +74,11 @@ mac_system_check_acct(kauth_cred_t cred, struct vnode *vp) { int error; +#if SECURITY_MAC_CHECK_ENFORCE + /* 21167099 - only check if we allow write */ if (!mac_system_enforce) return (0); +#endif MAC_CHECK(system_check_acct, cred, vp, vp != NULL ? vp->v_label : NULL); @@ -88,8 +91,11 @@ mac_system_check_chud(kauth_cred_t cred) { int error; +#if SECURITY_MAC_CHECK_ENFORCE + /* 21167099 - only check if we allow write */ if (!mac_system_enforce) return (0); +#endif MAC_CHECK(system_check_chud, cred); @@ -101,21 +107,43 @@ mac_system_check_host_priv(kauth_cred_t cred) { int error; +#if SECURITY_MAC_CHECK_ENFORCE + /* 21167099 - only check if we allow write */ if (!mac_system_enforce) return (0); +#endif MAC_CHECK(system_check_host_priv, cred); return (error); } +int +mac_system_check_info(kauth_cred_t cred, const char *info_type) +{ + int error; + +#if SECURITY_MAC_CHECK_ENFORCE + /* 21167099 - only check if we allow write */ + if (!mac_system_enforce) + return (0); +#endif + + MAC_CHECK(system_check_info, cred, info_type); + + return (error); +} + int mac_system_check_nfsd(kauth_cred_t cred) { int error; +#if SECURITY_MAC_CHECK_ENFORCE + /* 21167099 - only check if we allow write */ if (!mac_system_enforce) return (0); +#endif MAC_CHECK(system_check_nfsd, cred); @@ -127,21 +155,28 @@ mac_system_check_reboot(kauth_cred_t cred, int howto) { int error; +#if SECURITY_MAC_CHECK_ENFORCE + /* 21167099 - only check if we allow write */ if (!mac_system_enforce) return (0); +#endif MAC_CHECK(system_check_reboot, cred, howto); return (error); } + int mac_system_check_settime(kauth_cred_t cred) { int error; +#if SECURITY_MAC_CHECK_ENFORCE + /* 21167099 - only check if we allow write */ if (!mac_system_enforce) return (0); +#endif MAC_CHECK(system_check_settime, cred); @@ -153,8 +188,11 @@ mac_system_check_swapon(kauth_cred_t cred, struct vnode *vp) { int error; +#if SECURITY_MAC_CHECK_ENFORCE + /* 21167099 - only check if we allow write */ if (!mac_system_enforce) return (0); +#endif MAC_CHECK(system_check_swapon, cred, vp, vp->v_label); return (error); @@ -165,31 +203,32 @@ mac_system_check_swapoff(kauth_cred_t cred, struct vnode *vp) { int error; - - +#if SECURITY_MAC_CHECK_ENFORCE + /* 21167099 - only check if we allow write */ if (!mac_system_enforce) return (0); +#endif MAC_CHECK(system_check_swapoff, cred, vp, vp->v_label); return (error); } int -mac_system_check_sysctl(kauth_cred_t cred, int *name, u_int namelen, - user_addr_t old, user_addr_t oldlenp, int inkernel, user_addr_t new, size_t newlen) +mac_system_check_sysctlbyname(kauth_cred_t cred, const char *namestring, int *name, + u_int namelen, user_addr_t oldctl, size_t oldlen, + user_addr_t newctl, size_t newlen) { int error; - - /* - * XXXMAC: We're very much like to assert the SYSCTL_LOCK here, - * but since it's not exported from kern_sysctl.c, we can't. - */ + +#if SECURITY_MAC_CHECK_ENFORCE + /* 21167099 - only check if we allow write */ if (!mac_system_enforce) return (0); +#endif - MAC_CHECK(system_check_sysctl, cred, name, namelen, old, oldlenp, - inkernel, new, newlen); - + MAC_CHECK(system_check_sysctlbyname, cred, namestring, + name, namelen, oldctl, oldlen, newctl, newlen); + return (error); } @@ -198,8 +237,11 @@ mac_system_check_kas_info(kauth_cred_t cred, int selector) { int error; +#if SECURITY_MAC_CHECK_ENFORCE + /* 21167099 - only check if we allow write */ if (!mac_system_enforce) return (0); +#endif MAC_CHECK(system_check_kas_info, cred, selector);