summaryrefslogtreecommitdiffstats
path: root/sys/kern
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
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')
-rw-r--r--sys/kern/sysv_ipc.c7
-rw-r--r--sys/kern/sysv_msg.c9
-rw-r--r--sys/kern/vfs_vnops.c4
3 files changed, 13 insertions, 7 deletions
diff --git a/sys/kern/sysv_ipc.c b/sys/kern/sysv_ipc.c
index 553c213..30bcba0 100644
--- a/sys/kern/sysv_ipc.c
+++ b/sys/kern/sysv_ipc.c
@@ -1,4 +1,4 @@
-/* $Id: sysv_ipc.c,v 1.7 1997/11/06 19:29:22 phk Exp $ */
+/* $Id: sysv_ipc.c,v 1.8 1997/11/18 12:52:10 bde Exp $ */
/* $NetBSD: sysv_ipc.c,v 1.7 1994/06/29 06:33:11 cgd Exp $ */
/*
@@ -41,6 +41,9 @@
/*
* Check for ipc permission
+ *
+ * XXX: Should pass proc argument so that we can pass
+ * XXX: proc->p_acflag to suser()
*/
int
@@ -50,7 +53,7 @@ ipcperm(cred, perm, mode)
int mode;
{
- if (cred->cr_uid == 0)
+ if (suser(cred, (u_short *)NULL))
return (0);
/* Check for user match. */
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",
diff --git a/sys/kern/vfs_vnops.c b/sys/kern/vfs_vnops.c
index 0b32a7d..b9242b3 100644
--- a/sys/kern/vfs_vnops.c
+++ b/sys/kern/vfs_vnops.c
@@ -36,7 +36,7 @@
* SUCH DAMAGE.
*
* @(#)vfs_vnops.c 8.2 (Berkeley) 1/21/94
- * $Id: vfs_vnops.c,v 1.61 1999/01/05 18:49:56 eivind Exp $
+ * $Id: vfs_vnops.c,v 1.62 1999/01/20 14:49:11 eivind Exp $
*/
#include <sys/param.h>
@@ -423,7 +423,7 @@ vn_stat(vp, sb, p)
sb->st_ctimespec = vap->va_ctime;
sb->st_blksize = vap->va_blocksize;
sb->st_flags = vap->va_flags;
- if (p->p_ucred->cr_uid != 0)
+ if (suser(p->p_ucred, (u_short *)NULL))
sb->st_gen = 0;
else
sb->st_gen = vap->va_gen;
OpenPOWER on IntegriCloud