summaryrefslogtreecommitdiffstats
path: root/sys/kern/sysv_msg.c
diff options
context:
space:
mode:
authorphk <phk@FreeBSD.org>1999-01-30 12:21:49 +0000
committerphk <phk@FreeBSD.org>1999-01-30 12:21:49 +0000
commit3d7d9296c026c35f49268a07b8c8afec5ab94b05 (patch)
treec16bd660e63dd9310a3af68b745abf0e2352a579 /sys/kern/sysv_msg.c
parent67f187760e45386080ca97c6bc73608f9fe52ae5 (diff)
downloadFreeBSD-src-3d7d9296c026c35f49268a07b8c8afec5ab94b05.zip
FreeBSD-src-3d7d9296c026c35f49268a07b8c8afec5ab94b05.tar.gz
Use suser() to determine super-user-ness, don't examine cr_uid directly.
Diffstat (limited to 'sys/kern/sysv_msg.c')
-rw-r--r--sys/kern/sysv_msg.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/sys/kern/sysv_msg.c b/sys/kern/sysv_msg.c
index d3b8a98..8b010b5 100644
--- a/sys/kern/sysv_msg.c
+++ b/sys/kern/sysv_msg.c
@@ -1,4 +1,4 @@
-/* $Id: sysv_msg.c,v 1.17 1997/11/06 19:29:24 phk Exp $ */
+/* $Id: sysv_msg.c,v 1.18 1998/03/30 09:50:35 phk Exp $ */
/*
* Implementation of SVID messages
@@ -252,8 +252,11 @@ msgctl(p, uap)
return(eval);
if ((eval = copyin(user_msqptr, &msqbuf, sizeof(msqbuf))) != 0)
return(eval);
- if (msqbuf.msg_qbytes > msqptr->msg_qbytes && cred->cr_uid != 0)
- return(EPERM);
+ if (msqbuf.msg_qbytes > msqptr->msg_qbytes) {
+ eval = suser(cred, &p->p_acflag);
+ if (eval)
+ return(eval);
+ }
if (msqbuf.msg_qbytes > msginfo.msgmnb) {
#ifdef MSG_DEBUG_OK
printf("can't increase msg_qbytes beyond %d (truncating)\n",
OpenPOWER on IntegriCloud