summaryrefslogtreecommitdiffstats
path: root/sys/kern/sysv_ipc.c
diff options
context:
space:
mode:
authorrwatson <rwatson@FreeBSD.org>2001-11-01 20:56:57 +0000
committerrwatson <rwatson@FreeBSD.org>2001-11-01 20:56:57 +0000
commitc532c3bf88b0296935bf9293accb407de43e240c (patch)
treed29ed0901454dffcc55e4c0606aef0cd915d84eb /sys/kern/sysv_ipc.c
parent49a98043879675541ed4fda938748b3b157c8479 (diff)
downloadFreeBSD-src-c532c3bf88b0296935bf9293accb407de43e240c.zip
FreeBSD-src-c532c3bf88b0296935bf9293accb407de43e240c.tar.gz
o Move suser() calls in kern/ to using suser_xxx() with an explicit
credential selection, rather than reference via a thread or process pointer. This is part of a gradual migration to suser() accepting a struct ucred instead of a struct proc, simplifying the reference and locking semantics of suser(). Obtained from: TrustedBSD Project
Diffstat (limited to 'sys/kern/sysv_ipc.c')
-rw-r--r--sys/kern/sysv_ipc.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/sys/kern/sysv_ipc.c b/sys/kern/sysv_ipc.c
index 70e2f4b..89ab7d2 100644
--- a/sys/kern/sysv_ipc.c
+++ b/sys/kern/sysv_ipc.c
@@ -94,7 +94,8 @@ ipcperm(td, perm, mode)
/* Check for user match. */
if (cred->cr_uid != perm->cuid && cred->cr_uid != perm->uid) {
if (mode & IPC_M)
- return (suser(p) == 0 ? 0 : EPERM);
+ return (suser_xxx(p->p_ucred, NULL, 0) == 0 ? 0 :
+ EPERM);
/* Check for group match. */
mode >>= 3;
if (!groupmember(perm->gid, cred) &&
@@ -105,5 +106,6 @@ ipcperm(td, perm, mode)
if (mode & IPC_M)
return (0);
- return ((mode & perm->mode) == mode || suser(p) == 0 ? 0 : EACCES);
+ return ((mode & perm->mode) == mode ||
+ suser_xxx(p->p_ucred, NULL, 0) == 0 ? 0 : EACCES);
}
OpenPOWER on IntegriCloud