From 4054aec72b4cfd922a044d73bf92f73374219638 Mon Sep 17 00:00:00 2001 From: Kris Van Hees Date: Thu, 29 Jul 2004 04:13:37 +0000 Subject: [PATCH] afs-suser-consistent-20040728 FIXES 6034 always call afs_suser() with one arg. always take one. --- src/afs/AIX/osi_misc.c | 2 +- src/afs/DARWIN/osi_inode.c | 6 +++--- src/afs/DARWIN/osi_misc.c | 2 +- src/afs/DUX/osi_inode.c | 6 +++--- src/afs/DUX/osi_misc.c | 2 +- src/afs/FBSD/osi_inode.c | 6 +++--- src/afs/FBSD/osi_machdep.h | 4 ++-- src/afs/HPUX/osi_inode.c | 6 +++--- src/afs/HPUX/osi_misc.c | 2 +- src/afs/IRIX/osi_inode.c | 18 +++++++++--------- src/afs/IRIX/osi_machdep.h | 6 ++---- src/afs/NBSD/osi_inode.c | 6 +++--- src/afs/NBSD/osi_misc.c | 2 +- src/afs/OBSD/osi_machdep.h | 2 +- src/afs/SOLARIS/osi_machdep.h | 2 +- src/afs/UKERNEL/osi_machdep.h | 2 +- src/afs/afs_call.c | 4 ++-- src/afs/afs_osi.c | 2 +- src/afs/afs_osi_pag.c | 4 ++-- 19 files changed, 41 insertions(+), 43 deletions(-) diff --git a/src/afs/AIX/osi_misc.c b/src/afs/AIX/osi_misc.c index 4fd610c10..2d25c5f99 100644 --- a/src/afs/AIX/osi_misc.c +++ b/src/afs/AIX/osi_misc.c @@ -167,7 +167,7 @@ aix_gnode_rele(vp) * Note that it must NOT set errno. */ -afs_suser() +afs_suser(void *credp) { register rc; char err; diff --git a/src/afs/DARWIN/osi_inode.c b/src/afs/DARWIN/osi_inode.c index a6bbeda95..f13418d19 100644 --- a/src/afs/DARWIN/osi_inode.c +++ b/src/afs/DARWIN/osi_inode.c @@ -167,7 +167,7 @@ afs_syscall_icreate(dev, near_inode, param1, param2, param3, param4, retval) AFS_STATCNT(afs_syscall_icreate); - if (!afs_suser()) + if (!afs_suser(NULL)) return (EPERM); code = getinode(0, (dev_t) dev, 2, &ip, &dummy); @@ -241,7 +241,7 @@ afs_syscall_iopen(dev, inode, usrmod, retval) AFS_STATCNT(afs_syscall_iopen); - if (!afs_suser()) + if (!afs_suser(NULL)) return (EPERM); code = igetinode(0, (dev_t) dev, (ino_t) inode, &ip, &dummy); @@ -280,7 +280,7 @@ afs_syscall_iincdec(dev, inode, inode_p1, amount) struct inode *ip; register int code; - if (!afs_suser()) + if (!afs_suser(NULL)) return (EPERM); code = igetinode(0, (dev_t) dev, (ino_t) inode, &ip, &dummy); diff --git a/src/afs/DARWIN/osi_misc.c b/src/afs/DARWIN/osi_misc.c index e8323f80f..619345bef 100644 --- a/src/afs/DARWIN/osi_misc.c +++ b/src/afs/DARWIN/osi_misc.c @@ -49,7 +49,7 @@ osi_lookupname(char *aname, enum uio_seg seg, int followlink, * Note that it must NOT set errno. */ -afs_suser() +afs_suser(void *credp) { int error; struct proc *p = current_proc(); diff --git a/src/afs/DUX/osi_inode.c b/src/afs/DUX/osi_inode.c index bdf960af4..daab16781 100644 --- a/src/afs/DUX/osi_inode.c +++ b/src/afs/DUX/osi_inode.c @@ -185,7 +185,7 @@ afs_syscall_icreate(dev, near_inode, param1, param2, param3, param4, retval) AFS_STATCNT(afs_syscall_icreate); - if (!afs_suser()) + if (!afs_suser(NULL)) return (EPERM); code = getinode(0, (dev_t) dev, 2, &ip, &dummy); @@ -262,7 +262,7 @@ afs_syscall_iopen(dev, inode, usrmod, retval) AFS_STATCNT(afs_syscall_iopen); - if (!afs_suser()) + if (!afs_suser(NULL)) return (EPERM); code = igetinode(0, (dev_t) dev, (ino_t) inode, &ip, &dummy); @@ -312,7 +312,7 @@ afs_syscall_iincdec(dev, inode, inode_p1, amount) struct inode *ip; register int code; - if (!afs_suser()) + if (!afs_suser(NULL)) return (EPERM); code = igetinode(0, (dev_t) dev, (ino_t) inode, &ip, &dummy); diff --git a/src/afs/DUX/osi_misc.c b/src/afs/DUX/osi_misc.c index b484cb210..27f2b6bb8 100644 --- a/src/afs/DUX/osi_misc.c +++ b/src/afs/DUX/osi_misc.c @@ -27,7 +27,7 @@ RCSID * Note that it must NOT set errno. */ -afs_suser() +afs_suser(void *credp) { int error; diff --git a/src/afs/FBSD/osi_inode.c b/src/afs/FBSD/osi_inode.c index 172cebd51..689482964 100644 --- a/src/afs/FBSD/osi_inode.c +++ b/src/afs/FBSD/osi_inode.c @@ -141,7 +141,7 @@ afs_syscall_icreate(dev, near_inode, param1, param2, param3, param4, retval) AFS_STATCNT(afs_syscall_icreate); - if (!afs_suser()) + if (!afs_suser(NULL)) return (EPERM); code = getinode(0, (dev_t) dev, 2, &ip, &dummy); @@ -219,7 +219,7 @@ afs_syscall_iopen(dev, inode, usrmod, retval) AFS_STATCNT(afs_syscall_iopen); - if (!afs_suser()) + if (!afs_suser(NULL)) return (EPERM); code = igetinode(0, (dev_t) dev, (ino_t) inode, &ip, &dummy); @@ -258,7 +258,7 @@ afs_syscall_iincdec(dev, inode, inode_p1, amount) struct inode *ip; register int code; - if (!afs_suser()) + if (!afs_suser(NULL)) return (EPERM); code = igetinode(0, (dev_t) dev, (ino_t) inode, &ip, &dummy); diff --git a/src/afs/FBSD/osi_machdep.h b/src/afs/FBSD/osi_machdep.h index 3e0cb3999..83e7c83f4 100644 --- a/src/afs/FBSD/osi_machdep.h +++ b/src/afs/FBSD/osi_machdep.h @@ -71,7 +71,7 @@ extern struct simplelock afs_rxglobal_lock; #define VROOT VV_ROOT #define v_flag v_vflag #define osi_curcred() (curthread->td_ucred) -#define afs_suser() (!suser(curthread)) +#define afs_suser(x) (!suser(curthread)) #define simple_lock(x) mtx_lock(x) #define simple_unlock(x) mtx_unlock(x) #define gop_rdwr(rw,gp,base,len,offset,segflg,unit,cred,aresid) \ @@ -85,7 +85,7 @@ extern struct mtx afs_global_mtx; extern struct lock afs_global_lock; #define osi_curcred() (curproc->p_cred->pc_ucred) -#define afs_suser() (!suser(curproc)) +#define afs_suser(x) (!suser(curproc)) #define getpid() curproc #define gop_rdwr(rw,gp,base,len,offset,segflg,unit,cred,aresid) \ vn_rdwr((rw),(gp),(base),(len),(offset),(segflg),(unit),(cred),(aresid), curproc) diff --git a/src/afs/HPUX/osi_inode.c b/src/afs/HPUX/osi_inode.c index ccf4661fc..44f3c49e5 100644 --- a/src/afs/HPUX/osi_inode.c +++ b/src/afs/HPUX/osi_inode.c @@ -86,7 +86,7 @@ afs_syscall_icreate(dev, near_inode, param1, param2, param3, param4) AFS_STATCNT(afs_syscall_icreate); - if (!afs_suser()) { + if (!afs_suser(NULL)) { u.u_error = EPERM; goto out; } @@ -131,7 +131,7 @@ afs_syscall_iopen(dev, inode, usrmod) AFS_STATCNT(afs_syscall_iopen); - if (!afs_suser()) { + if (!afs_suser(NULL)) { u.u_error = EPERM; goto out; } @@ -190,7 +190,7 @@ afs_syscall_iincdec(dev, inode, inode_p1, amount) struct inode *ip; register afs_int32 code; - if (!afs_suser()) { + if (!afs_suser(NULL)) { u.u_error = EPERM; goto out; } diff --git a/src/afs/HPUX/osi_misc.c b/src/afs/HPUX/osi_misc.c index 7bc49561a..e658a1abd 100644 --- a/src/afs/HPUX/osi_misc.c +++ b/src/afs/HPUX/osi_misc.c @@ -29,7 +29,7 @@ RCSID * Here we have to save and restore errno since the HP-UX suser() sets errno. */ -afs_suser() +afs_suser(void *credp) { int save_errno; int code; diff --git a/src/afs/IRIX/osi_inode.c b/src/afs/IRIX/osi_inode.c index 3610b7bc5..05894b312 100644 --- a/src/afs/IRIX/osi_inode.c +++ b/src/afs/IRIX/osi_inode.c @@ -314,7 +314,7 @@ afs_syscall_icreate(dev, near_inode, param1, param2, param3, param4, rvp) int error; AFS_STATCNT(afs_syscall_icreate); - if (!afs_suser()) + if (!afs_suser(NULL)) return EPERM; if (error = getinode(0, (dev_t) dev, 2, &ip)) @@ -567,7 +567,7 @@ afs_syscall_icreatename64(int dev, int datap, int datalen, int paramp, ino_t ino; - if (!afs_suser()) + if (!afs_suser(NULL)) return EPERM; #ifdef AFS_SGI65_ENV @@ -638,7 +638,7 @@ afs_syscall_iopen(int dev, ino_t inode, int usrmod, rval_t * rvp) struct vnode *vp; AFS_STATCNT(afs_syscall_iopen); - if (!afs_suser()) + if (!afs_suser(NULL)) return EPERM; vfsp = vfs_devsearch(dev, xfs_fstype); if (!vfsp) @@ -689,7 +689,7 @@ afs_syscall_iopen(int dev, ino_t inode, int usrmod, rval_t * rvp) struct vfs *vfsp; AFS_STATCNT(afs_syscall_iopen); - if (!afs_suser()) + if (!afs_suser(NULL)) return EPERM; vfsp = vfs_devsearch(dev); if (!vfsp) { @@ -764,7 +764,7 @@ afs_syscall_iopen(dev, inode, usrmod, rvp) int error; AFS_STATCNT(afs_syscall_iopen); - if (!afs_suser()) + if (!afs_suser(NULL)) return EPERM; if (error = igetinode(0, (dev_t) dev, inode, &ip)) return error; @@ -971,7 +971,7 @@ iincdec64(int dev, int inode_hi, int inode_lo, int inode_p1, int amount) { struct vfs *vfsp; - if (!afs_suser()) + if (!afs_suser(NULL)) return EPERM; #ifdef AFS_SGI65_ENV vfsp = vfs_devsearch(dev, VFS_FSTYPE_ANY); @@ -1044,7 +1044,7 @@ iincdec(dev, inode, inode_p1, amount) { struct vfs *vfsp; - if (!afs_suser()) + if (!afs_suser(NULL)) return EPERM; vfsp = vfs_devsearch(dev); if (!vfsp) { @@ -1083,7 +1083,7 @@ afs_syscall_iincdec(dev, inode, inode_p1, amount) struct inode *ip; int error = 0; - if (!afs_suser()) + if (!afs_suser(NULL)) return EPERM; if (error = igetinode(0, (dev_t) dev, inode, &ip)) return error; @@ -1146,7 +1146,7 @@ afs_syscall_ilistinode64(int dev, int inode_hi, int inode_lo, int datap, i_list_inode_t data; int idatalen; - if (!afs_suser()) + if (!afs_suser(NULL)) return EPERM; #ifdef AFS_SGI65_ENV vfsp = vfs_devsearch(dev, xfs_fstype); diff --git a/src/afs/IRIX/osi_machdep.h b/src/afs/IRIX/osi_machdep.h index fb6b59876..c17eeb158 100644 --- a/src/afs/IRIX/osi_machdep.h +++ b/src/afs/IRIX/osi_machdep.h @@ -205,11 +205,9 @@ extern long afs_global_owner; #ifdef AFS_SGI64_ENV #undef suser -#define suser() cap_able(CAP_DEVICE_MGT) -#define afs_suser() suser() -#else -#define afs_suser suser +#define suser() cap_able(CAP_DEVICE_MGT) #endif +#define afs_suser(x) suser() #define afs_hz HZ diff --git a/src/afs/NBSD/osi_inode.c b/src/afs/NBSD/osi_inode.c index f7985f820..04e6c7e7c 100644 --- a/src/afs/NBSD/osi_inode.c +++ b/src/afs/NBSD/osi_inode.c @@ -148,7 +148,7 @@ afs_syscall_icreate(dev, near_inode, param1, param2, param3, param4, retval) AFS_STATCNT(afs_syscall_icreate); - if (!afs_suser()) + if (!afs_suser(NULL)) return (EPERM); code = getinode(0, (dev_t) dev, 2, &ip, &dummy); @@ -225,7 +225,7 @@ afs_syscall_iopen(dev, inode, usrmod, retval) AFS_STATCNT(afs_syscall_iopen); - if (!afs_suser()) + if (!afs_suser(NULL)) return (EPERM); code = igetinode(0, (dev_t) dev, (ino_t) inode, &ip, &dummy); @@ -263,7 +263,7 @@ afs_syscall_iincdec(dev, inode, inode_p1, amount) struct inode *ip; register int code; - if (!afs_suser()) + if (!afs_suser(NULL)) return (EPERM); code = igetinode(0, (dev_t) dev, (ino_t) inode, &ip, &dummy); diff --git a/src/afs/NBSD/osi_misc.c b/src/afs/NBSD/osi_misc.c index c07775086..e813156fc 100644 --- a/src/afs/NBSD/osi_misc.c +++ b/src/afs/NBSD/osi_misc.c @@ -29,7 +29,7 @@ RCSID * Note that it must NOT set errno. */ -afs_suser() +afs_suser(void *credp) { int error; diff --git a/src/afs/OBSD/osi_machdep.h b/src/afs/OBSD/osi_machdep.h index 4c456271a..45e1fea34 100644 --- a/src/afs/OBSD/osi_machdep.h +++ b/src/afs/OBSD/osi_machdep.h @@ -67,7 +67,7 @@ extern struct simplelock afs_rxglobal_lock; /* proc, cred */ #define AFS_PROC struct proc #define AFS_UCRED ucred -#define afs_suser() afs_osi_suser(osi_curcred()) +#define afs_suser(x) afs_osi_suser(osi_curcred()) #define getpid() curproc #define osi_curcred() (curproc->p_cred->pc_ucred) #define osi_curproc() curproc diff --git a/src/afs/SOLARIS/osi_machdep.h b/src/afs/SOLARIS/osi_machdep.h index a7d051b1a..304d40022 100644 --- a/src/afs/SOLARIS/osi_machdep.h +++ b/src/afs/SOLARIS/osi_machdep.h @@ -60,7 +60,7 @@ extern void *afs_osi_Alloc_NoSleep(size_t size); #define gop_rdwr(rw,gp,base,len,offset,segflg,ioflag,ulimit,cr,aresid) \ vn_rdwr((rw),(gp),(base),(len),(offset),(segflg),(ioflag),(ulimit),(cr),(aresid)) -#define afs_suser suser +#define afs_suser(x) suser(x) #ifdef KERNEL diff --git a/src/afs/UKERNEL/osi_machdep.h b/src/afs/UKERNEL/osi_machdep.h index be85d6f61..97cc6c584 100644 --- a/src/afs/UKERNEL/osi_machdep.h +++ b/src/afs/UKERNEL/osi_machdep.h @@ -37,7 +37,7 @@ #define osi_Time() (time(NULL)) #define osi_vnhold(avc, r) do { VN_HOLD(AFSTOV(avc)); } while(0) -#define afs_suser suser +#define afs_suser(x) suser(x) /* * Global lock support. diff --git a/src/afs/afs_call.c b/src/afs/afs_call.c index c5c613b1b..ad5922d07 100644 --- a/src/afs/afs_call.c +++ b/src/afs/afs_call.c @@ -355,7 +355,7 @@ afs_syscall_call(parm, parm2, parm3, parm4, parm5, parm6) /* only root can run this code */ return (EACCES); #else - if (!afs_suser() && (parm != AFSOP_GETMTU) + if (!afs_suser(NULL) && (parm != AFSOP_GETMTU) && (parm != AFSOP_GETMASK)) { /* only root can run this code */ #if defined(KERNEL_HAVE_UERROR) @@ -1694,7 +1694,7 @@ Afscall_icl(long opcode, long p1, long p2, long p3, long p4, long *retval) return (EACCES); } #else - if (!afs_suser()) { /* only root can run this code */ + if (!afs_suser(NULL)) { /* only root can run this code */ #if defined(KERNEL_HAVE_UERROR) setuerror(EACCES); return EACCES; diff --git a/src/afs/afs_osi.c b/src/afs/afs_osi.c index a03ffd7a6..ce9a8ce47 100644 --- a/src/afs/afs_osi.c +++ b/src/afs/afs_osi.c @@ -617,7 +617,7 @@ afs_osi_suser(void *credp) #if defined(AFS_SUN5_ENV) return afs_suser(credp); #else - return afs_suser(); + return afs_suser(NULL); #endif } #endif diff --git a/src/afs/afs_osi_pag.c b/src/afs/afs_osi_pag.c index 3d8a8bb23..12b7d54ec 100644 --- a/src/afs/afs_osi_pag.c +++ b/src/afs/afs_osi_pag.c @@ -161,7 +161,7 @@ afs_setpag(void) #elif defined(AFS_OBSD_ENV) if (!afs_osi_suser(p->p_ucred)) #else - if (!afs_suser()) + if (!afs_suser(NULL)) #endif { while (osi_Time() - pag_epoch < pagCounter) { @@ -251,7 +251,7 @@ afs_setpag_val(int pagval) #ifdef AFS_SUN5_ENV if (!afs_suser(*credpp)) #else - if (!afs_suser()) + if (!afs_suser(NULL)) #endif { while (osi_Time() - pag_epoch < pagCounter) { -- 2.39.5