diff options
| author | Poul-Henning Kamp <phk@FreeBSD.org> | 1999-01-30 12:21:49 +0000 |
|---|---|---|
| committer | Poul-Henning Kamp <phk@FreeBSD.org> | 1999-01-30 12:21:49 +0000 |
| commit | 57c90d6fcd7a09153d16734be0a28efd29e7eb66 (patch) | |
| tree | 5867936c37bdddde0919c76d960128d9c6df7132 | |
| parent | 4e2d2aa1cd4f4f0351b1c984930edcdde311c296 (diff) | |
Notes
| -rw-r--r-- | sys/i386/isa/atapi-cd.c | 7 | ||||
| -rw-r--r-- | sys/i386/isa/wd_cd.c | 7 | ||||
| -rw-r--r-- | sys/i386/isa/wfd.c | 17 | ||||
| -rw-r--r-- | sys/kern/sysv_ipc.c | 7 | ||||
| -rw-r--r-- | sys/kern/sysv_msg.c | 9 | ||||
| -rw-r--r-- | sys/kern/vfs_vnops.c | 4 | ||||
| -rw-r--r-- | sys/pc98/pc98/wd_cd.c | 7 | ||||
| -rw-r--r-- | sys/pc98/pc98/wfd.c | 17 |
8 files changed, 45 insertions, 30 deletions
diff --git a/sys/i386/isa/atapi-cd.c b/sys/i386/isa/atapi-cd.c index f475fa5083b8..6be9598604b2 100644 --- a/sys/i386/isa/atapi-cd.c +++ b/sys/i386/isa/atapi-cd.c @@ -25,7 +25,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $Id: atapi-cd.c,v 1.6 1998/12/07 21:58:20 archie Exp $ + * $Id: atapi-cd.c,v 1.7 1999/01/02 17:11:45 hoek Exp $ */ #include "wdc.h" @@ -652,8 +652,9 @@ acdioctl(dev_t dev, u_long cmd, caddr_t addr, int flag, struct proc *p) 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0); case CDIOCRESET: - if (p->p_cred->pc_ucred->cr_uid) - return EPERM; + error = suser(p->p_ucred, &p->p_acflag); + if (error) + return (error); return acd_request_wait(cdp, ATAPI_TEST_UNIT_READY, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); diff --git a/sys/i386/isa/wd_cd.c b/sys/i386/isa/wd_cd.c index f475fa5083b8..6be9598604b2 100644 --- a/sys/i386/isa/wd_cd.c +++ b/sys/i386/isa/wd_cd.c @@ -25,7 +25,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $Id: atapi-cd.c,v 1.6 1998/12/07 21:58:20 archie Exp $ + * $Id: atapi-cd.c,v 1.7 1999/01/02 17:11:45 hoek Exp $ */ #include "wdc.h" @@ -652,8 +652,9 @@ acdioctl(dev_t dev, u_long cmd, caddr_t addr, int flag, struct proc *p) 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0); case CDIOCRESET: - if (p->p_cred->pc_ucred->cr_uid) - return EPERM; + error = suser(p->p_ucred, &p->p_acflag); + if (error) + return (error); return acd_request_wait(cdp, ATAPI_TEST_UNIT_READY, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); diff --git a/sys/i386/isa/wfd.c b/sys/i386/isa/wfd.c index 60ceb0b81a13..b47b1e5f0d1a 100644 --- a/sys/i386/isa/wfd.c +++ b/sys/i386/isa/wfd.c @@ -23,7 +23,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $Id: wfd.c,v 1.16 1998/09/15 08:15:30 gibbs Exp $ + * $Id: wfd.c,v 1.17 1998/12/07 21:58:24 archie Exp $ */ /* @@ -681,20 +681,23 @@ int wfdioctl (dev_t dev, u_long cmd, caddr_t addr, int flag, struct proc *p) } switch (cmd) { case CDIOCSETDEBUG: - if (p->p_cred->pc_ucred->cr_uid) - return (EPERM); + error = suser(p->p_ucred, &p->p_acflag); + if (error) + return (error); t->flags |= F_DEBUG; atapi_debug (t->ata, 1); return 0; case CDIOCCLRDEBUG: - if (p->p_cred->pc_ucred->cr_uid) - return (EPERM); + error = suser(p->p_ucred, &p->p_acflag); + if (error) + return (error); t->flags &= ~F_DEBUG; atapi_debug (t->ata, 0); return 0; case CDIOCRESET: - if (p->p_cred->pc_ucred->cr_uid) - return (EPERM); + error = suser(p->p_ucred, &p->p_acflag); + if (error) + return (error); return wfd_request_wait (t, ATAPI_TEST_UNIT_READY, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); case CDIOCEJECT: diff --git a/sys/kern/sysv_ipc.c b/sys/kern/sysv_ipc.c index 553c21335e8f..30bcba0c2014 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 d3b8a9803a7f..8b010b5566f6 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 0b32a7d1950c..b9242b3b4430 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; diff --git a/sys/pc98/pc98/wd_cd.c b/sys/pc98/pc98/wd_cd.c index f475fa5083b8..6be9598604b2 100644 --- a/sys/pc98/pc98/wd_cd.c +++ b/sys/pc98/pc98/wd_cd.c @@ -25,7 +25,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $Id: atapi-cd.c,v 1.6 1998/12/07 21:58:20 archie Exp $ + * $Id: atapi-cd.c,v 1.7 1999/01/02 17:11:45 hoek Exp $ */ #include "wdc.h" @@ -652,8 +652,9 @@ acdioctl(dev_t dev, u_long cmd, caddr_t addr, int flag, struct proc *p) 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0); case CDIOCRESET: - if (p->p_cred->pc_ucred->cr_uid) - return EPERM; + error = suser(p->p_ucred, &p->p_acflag); + if (error) + return (error); return acd_request_wait(cdp, ATAPI_TEST_UNIT_READY, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); diff --git a/sys/pc98/pc98/wfd.c b/sys/pc98/pc98/wfd.c index 60ceb0b81a13..b47b1e5f0d1a 100644 --- a/sys/pc98/pc98/wfd.c +++ b/sys/pc98/pc98/wfd.c @@ -23,7 +23,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $Id: wfd.c,v 1.16 1998/09/15 08:15:30 gibbs Exp $ + * $Id: wfd.c,v 1.17 1998/12/07 21:58:24 archie Exp $ */ /* @@ -681,20 +681,23 @@ int wfdioctl (dev_t dev, u_long cmd, caddr_t addr, int flag, struct proc *p) } switch (cmd) { case CDIOCSETDEBUG: - if (p->p_cred->pc_ucred->cr_uid) - return (EPERM); + error = suser(p->p_ucred, &p->p_acflag); + if (error) + return (error); t->flags |= F_DEBUG; atapi_debug (t->ata, 1); return 0; case CDIOCCLRDEBUG: - if (p->p_cred->pc_ucred->cr_uid) - return (EPERM); + error = suser(p->p_ucred, &p->p_acflag); + if (error) + return (error); t->flags &= ~F_DEBUG; atapi_debug (t->ata, 0); return 0; case CDIOCRESET: - if (p->p_cred->pc_ucred->cr_uid) - return (EPERM); + error = suser(p->p_ucred, &p->p_acflag); + if (error) + return (error); return wfd_request_wait (t, ATAPI_TEST_UNIT_READY, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); case CDIOCEJECT: |
