summaryrefslogtreecommitdiffstats
path: root/sys/kern/sysv_ipc.c
diff options
context:
space:
mode:
authorrwatson <rwatson@FreeBSD.org>2003-05-31 23:17:30 +0000
committerrwatson <rwatson@FreeBSD.org>2003-05-31 23:17:30 +0000
commit55281b2df1a73b8c39406da931d4fb59b215d054 (patch)
tree9bd30d75f2ab06f00f9fa80e6f0c659d00659fa0 /sys/kern/sysv_ipc.c
parentacd4004bf3cb09f1dcb956df150949e8b1662454 (diff)
downloadFreeBSD-src-55281b2df1a73b8c39406da931d4fb59b215d054.zip
FreeBSD-src-55281b2df1a73b8c39406da931d4fb59b215d054.tar.gz
Attempt to marginally de-obfuscate sections of the System V IPC access
control logic. Obtained from: TrustedBSD Project Sponsored by: DARPA, Network Associates Laboratories
Diffstat (limited to 'sys/kern/sysv_ipc.c')
-rw-r--r--sys/kern/sysv_ipc.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/sys/kern/sysv_ipc.c b/sys/kern/sysv_ipc.c
index 55d39de..30939e4 100644
--- a/sys/kern/sysv_ipc.c
+++ b/sys/kern/sysv_ipc.c
@@ -91,6 +91,11 @@ ipcperm(td, perm, mode)
if (mode & IPC_M)
return (0);
- return ((mode & perm->mode) == mode ||
- suser(td) == 0 ? 0 : EACCES);
+
+
+ if ((mode & perm->mode) != mode) {
+ if (suser(td) != 0)
+ return (EACCES);
+ }
+ return (0);
}
OpenPOWER on IntegriCloud