diff options
author | ache <ache@FreeBSD.org> | 1995-04-28 17:00:27 +0000 |
---|---|---|
committer | ache <ache@FreeBSD.org> | 1995-04-28 17:00:27 +0000 |
commit | a94803da3b0bb61df4ae5bf5cdb0624a80ac3ca1 (patch) | |
tree | ce70f91dfafb12763d78eb733306d4273b4152f0 /sys/kern | |
parent | 1daff00b2626509d112661d64c9e92296a2c54e9 (diff) | |
download | FreeBSD-src-a94803da3b0bb61df4ae5bf5cdb0624a80ac3ca1.zip FreeBSD-src-a94803da3b0bb61df4ae5bf5cdb0624a80ac3ca1.tar.gz |
setre*(): simplify return scheme, pointed by Bruce
Diffstat (limited to 'sys/kern')
-rw-r--r-- | sys/kern/kern_prot.c | 42 |
1 files changed, 19 insertions, 23 deletions
diff --git a/sys/kern/kern_prot.c b/sys/kern/kern_prot.c index e224baf..657c025 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.7 1995/04/23 12:20:48 ache Exp $ + * $Id: kern_prot.c,v 1.8 1995/04/27 19:23:24 ache Exp $ */ /* @@ -397,29 +397,27 @@ setreuid(p, uap, retval) { register struct pcred *pc = p->p_cred; struct seteuid_args args; - int rerr, eerr; + int error; if (uap->ruid != (uid_t)-1 && uap->ruid != pc->p_ruid && uap->ruid != pc->p_svuid && - (rerr = suser(pc->pc_ucred, &p->p_acflag))) - ; - else - rerr = 0; + (error = suser(pc->pc_ucred, &p->p_acflag))) + return (error); if (uap->euid != (uid_t)-1 && pc->pc_ucred->cr_uid != uap->euid) { args.euid = uap->euid; - eerr = seteuid(p, &args, retval); - if (!eerr && pc->pc_ucred->cr_uid != pc->p_ruid) + if ((error = seteuid(p, &args, retval))) + return (error); + if (pc->pc_ucred->cr_uid != pc->p_ruid) pc->p_svuid = pc->pc_ucred->cr_uid; - } else - eerr = 0; - if (!rerr && uap->ruid != (uid_t)-1 && uap->ruid != pc->p_ruid) { + } + if (uap->ruid != (uid_t)-1 && uap->ruid != pc->p_ruid) { (void)chgproccnt(pc->p_ruid, -1); (void)chgproccnt(uap->ruid, 1); pc->p_ruid = uap->ruid; pc->p_svuid = pc->pc_ucred->cr_uid; p->p_flag |= P_SUGID; } - return (rerr ? rerr : eerr); + return (0); } struct setregid_args { @@ -435,27 +433,25 @@ setregid(p, uap, retval) { register struct pcred *pc = p->p_cred; struct setegid_args args; - int rerr, eerr; + int error; if (uap->rgid != (gid_t)-1 && uap->rgid != pc->p_rgid && uap->rgid != pc->p_svgid && - (rerr = suser(pc->pc_ucred, &p->p_acflag))) - ; - else - rerr = 0; + (error = suser(pc->pc_ucred, &p->p_acflag))) + return (error); if (uap->egid != (gid_t)-1 && pc->pc_ucred->cr_groups[0] != uap->egid) { args.egid = uap->egid; - eerr = setegid(p, &args, retval); - if (!eerr && pc->pc_ucred->cr_groups[0] != pc->p_rgid) + if ((error = setegid(p, &args, retval))) + return (error); + if (pc->pc_ucred->cr_groups[0] != pc->p_rgid) pc->p_svgid = pc->pc_ucred->cr_groups[0]; - } else - eerr = 0; - if (!rerr && uap->rgid != (gid_t)-1 && uap->rgid != pc->p_rgid) { + } + if (uap->rgid != (gid_t)-1 && uap->rgid != pc->p_rgid) { pc->p_rgid = uap->rgid; pc->p_svgid = pc->pc_ucred->cr_groups[0]; p->p_flag |= P_SUGID; } - return (rerr ? rerr : eerr); + return (0); } /* |