diff options
author | phk <phk@FreeBSD.org> | 1999-01-30 12:21:49 +0000 |
---|---|---|
committer | phk <phk@FreeBSD.org> | 1999-01-30 12:21:49 +0000 |
commit | 3d7d9296c026c35f49268a07b8c8afec5ab94b05 (patch) | |
tree | c16bd660e63dd9310a3af68b745abf0e2352a579 /sys/kern/sysv_msg.c | |
parent | 67f187760e45386080ca97c6bc73608f9fe52ae5 (diff) | |
download | FreeBSD-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.c | 9 |
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", |