summaryrefslogtreecommitdiffstats
path: root/sys/kern/kern_prot.c
diff options
context:
space:
mode:
authorphk <phk@FreeBSD.org>1999-04-27 11:18:52 +0000
committerphk <phk@FreeBSD.org>1999-04-27 11:18:52 +0000
commit16e3fbd2c114d665755299002f1c50dd11ba7245 (patch)
treed7f6bebfe177ae90b67d27603da4d211433088e5 /sys/kern/kern_prot.c
parentaba5e776bb95610ea3e3355cbf47aadb844773eb (diff)
downloadFreeBSD-src-16e3fbd2c114d665755299002f1c50dd11ba7245.zip
FreeBSD-src-16e3fbd2c114d665755299002f1c50dd11ba7245.tar.gz
Suser() simplification:
1: s/suser/suser_xxx/ 2: Add new function: suser(struct proc *), prototyped in <sys/proc.h>. 3: s/suser_xxx(\([a-zA-Z0-9_]*\)->p_ucred, \&\1->p_acflag)/suser(\1)/ The remaining suser_xxx() calls will be scrutinized and dealt with later. There may be some unneeded #include <sys/cred.h>, but they are left as an exercise for Bruce. More changes to the suser() API will come along with the "jail" code.
Diffstat (limited to 'sys/kern/kern_prot.c')
-rw-r--r--sys/kern/kern_prot.c31
1 files changed, 19 insertions, 12 deletions
diff --git a/sys/kern/kern_prot.c b/sys/kern/kern_prot.c
index 728e430..c5224d6 100644
--- a/sys/kern/kern_prot.c
+++ b/sys/kern/kern_prot.c
@@ -36,7 +36,7 @@
* SUCH DAMAGE.
*
* @(#)kern_prot.c 8.6 (Berkeley) 1/21/94
- * $Id: kern_prot.c,v 1.43 1998/12/13 07:07:51 truckman Exp $
+ * $Id: kern_prot.c,v 1.44 1999/01/28 00:57:47 dillon Exp $
*/
/*
@@ -395,7 +395,7 @@ setuid(p, uap)
#ifdef POSIX_APPENDIX_B_4_2_2 /* Use BSD-compat clause from B.4.2.2 */
uid != pc->pc_ucred->cr_uid && /* allow setuid(geteuid()) */
#endif
- (error = suser(pc->pc_ucred, &p->p_acflag)))
+ (error = suser_xxx(pc->pc_ucred, &p->p_acflag)))
return (error);
#ifdef _POSIX_SAVED_IDS
@@ -407,7 +407,7 @@ setuid(p, uap)
#ifdef POSIX_APPENDIX_B_4_2_2 /* Use the clause from B.4.2.2 */
uid == pc->pc_ucred->cr_uid ||
#endif
- suser(pc->pc_ucred, &p->p_acflag) == 0) /* we are using privs */
+ suser_xxx(pc->pc_ucred, &p->p_acflag) == 0) /* we are using privs */
#endif
{
/*
@@ -467,7 +467,7 @@ seteuid(p, uap)
euid = uap->euid;
if (euid != pc->p_ruid && /* allow seteuid(getuid()) */
euid != pc->p_svuid && /* allow seteuid(saved uid) */
- (error = suser(pc->pc_ucred, &p->p_acflag)))
+ (error = suser_xxx(pc->pc_ucred, &p->p_acflag)))
return (error);
/*
* Everything's okay, do it. Copy credentials so other references do
@@ -515,7 +515,7 @@ setgid(p, uap)
#ifdef POSIX_APPENDIX_B_4_2_2 /* Use BSD-compat clause from B.4.2.2 */
gid != pc->pc_ucred->cr_groups[0] && /* allow setgid(getegid()) */
#endif
- (error = suser(pc->pc_ucred, &p->p_acflag)))
+ (error = suser_xxx(pc->pc_ucred, &p->p_acflag)))
return (error);
#ifdef _POSIX_SAVED_IDS
@@ -527,7 +527,7 @@ setgid(p, uap)
#ifdef POSIX_APPENDIX_B_4_2_2 /* use the clause from B.4.2.2 */
gid == pc->pc_ucred->cr_groups[0] ||
#endif
- suser(pc->pc_ucred, &p->p_acflag) == 0) /* we are using privs */
+ suser_xxx(pc->pc_ucred, &p->p_acflag) == 0) /* we are using privs */
#endif
{
/*
@@ -579,7 +579,7 @@ setegid(p, uap)
egid = uap->egid;
if (egid != pc->p_rgid && /* allow setegid(getgid()) */
egid != pc->p_svgid && /* allow setegid(saved gid) */
- (error = suser(pc->pc_ucred, &p->p_acflag)))
+ (error = suser_xxx(pc->pc_ucred, &p->p_acflag)))
return (error);
if (pc->pc_ucred->cr_groups[0] != egid) {
pc->pc_ucred = crcopy(pc->pc_ucred);
@@ -605,7 +605,7 @@ setgroups(p, uap)
register u_int ngrp;
int error;
- if ((error = suser(pc->pc_ucred, &p->p_acflag)))
+ if ((error = suser_xxx(pc->pc_ucred, &p->p_acflag)))
return (error);
ngrp = uap->gidsetsize;
if (ngrp > NGROUPS)
@@ -654,7 +654,7 @@ setreuid(p, uap)
if (((ruid != (uid_t)-1 && ruid != pc->p_ruid && ruid != pc->p_svuid) ||
(euid != (uid_t)-1 && euid != pc->pc_ucred->cr_uid &&
euid != pc->p_ruid && euid != pc->p_svuid)) &&
- (error = suser(pc->pc_ucred, &p->p_acflag)) != 0)
+ (error = suser_xxx(pc->pc_ucred, &p->p_acflag)) != 0)
return (error);
if (euid != (uid_t)-1 && pc->pc_ucred->cr_uid != euid) {
@@ -697,7 +697,7 @@ setregid(p, uap)
if (((rgid != (gid_t)-1 && rgid != pc->p_rgid && rgid != pc->p_svgid) ||
(egid != (gid_t)-1 && egid != pc->pc_ucred->cr_groups[0] &&
egid != pc->p_rgid && egid != pc->p_svgid)) &&
- (error = suser(pc->pc_ucred, &p->p_acflag)) != 0)
+ (error = suser_xxx(pc->pc_ucred, &p->p_acflag)) != 0)
return (error);
if (egid != (gid_t)-1 && pc->pc_ucred->cr_groups[0] != egid) {
@@ -766,7 +766,14 @@ groupmember(gid, cred)
* Returns 0 or error.
*/
int
-suser(cred, acflag)
+suser(p)
+ struct proc *p;
+{
+ return suser_xxx(p->p_ucred, &p->p_acflag);
+}
+
+int
+suser_xxx(cred, acflag)
struct ucred *cred;
u_short *acflag;
{
@@ -876,7 +883,7 @@ setlogin(p, uap)
int error;
char logintmp[MAXLOGNAME];
- if ((error = suser(p->p_ucred, &p->p_acflag)))
+ if ((error = suser(p)))
return (error);
error = copyinstr((caddr_t) uap->namebuf, (caddr_t) logintmp,
sizeof(logintmp), (size_t *)0);
OpenPOWER on IntegriCloud