diff options
author | rwatson <rwatson@FreeBSD.org> | 2003-05-31 23:17:30 +0000 |
---|---|---|
committer | rwatson <rwatson@FreeBSD.org> | 2003-05-31 23:17:30 +0000 |
commit | 55281b2df1a73b8c39406da931d4fb59b215d054 (patch) | |
tree | 9bd30d75f2ab06f00f9fa80e6f0c659d00659fa0 /sys/kern | |
parent | acd4004bf3cb09f1dcb956df150949e8b1662454 (diff) | |
download | FreeBSD-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')
-rw-r--r-- | sys/kern/sysv_ipc.c | 9 |
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); } |