summaryrefslogtreecommitdiffstats
path: root/sys/security/mac/mac_process.c
diff options
context:
space:
mode:
authorrwatson <rwatson@FreeBSD.org>2005-04-18 13:36:57 +0000
committerrwatson <rwatson@FreeBSD.org>2005-04-18 13:36:57 +0000
commit75030e30f64232f9490b244e2925b347d7bf669c (patch)
treeedb79f235bf4b33075b9d7e39ce462e142125e48 /sys/security/mac/mac_process.c
parent8694c5f46241d5fb117c7feed17f9896b6f9e730 (diff)
downloadFreeBSD-src-75030e30f64232f9490b244e2925b347d7bf669c.zip
FreeBSD-src-75030e30f64232f9490b244e2925b347d7bf669c.tar.gz
Introduce p_canwait() and MAC Framework and MAC Policy entry points
mac_check_proc_wait(), which control the ability to wait4() specific processes. This permits MAC policies to limit information flow from children that have changed label, although has to be handled carefully due to common programming expectations regarding the behavior of wait4(). The cr_seeotheruids() check in p_canwait() is #if 0'd for this reason. The mac_stub and mac_test policies are updated to reflect these new entry points. Sponsored by: SPAWAR, SPARTA Obtained from: TrustedBSD Project
Diffstat (limited to 'sys/security/mac/mac_process.c')
-rw-r--r--sys/security/mac/mac_process.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/sys/security/mac/mac_process.c b/sys/security/mac/mac_process.c
index 8dda7b1..436c55b 100644
--- a/sys/security/mac/mac_process.c
+++ b/sys/security/mac/mac_process.c
@@ -650,3 +650,18 @@ mac_check_proc_setresgid(struct proc *proc, struct ucred *cred, gid_t rgid,
MAC_CHECK(check_proc_setresgid, cred, rgid, egid, sgid);
return (error);
}
+
+int
+mac_check_proc_wait(struct ucred *cred, struct proc *proc)
+{
+ int error;
+
+ PROC_LOCK_ASSERT(proc, MA_OWNED);
+
+ if (!mac_enforce_process)
+ return (0);
+
+ MAC_CHECK(check_proc_wait, cred, proc);
+
+ return (error);
+}
OpenPOWER on IntegriCloud