summaryrefslogtreecommitdiffstats
path: root/sys/kern
diff options
context:
space:
mode:
authorache <ache@FreeBSD.org>1995-04-28 17:00:27 +0000
committerache <ache@FreeBSD.org>1995-04-28 17:00:27 +0000
commita94803da3b0bb61df4ae5bf5cdb0624a80ac3ca1 (patch)
treece70f91dfafb12763d78eb733306d4273b4152f0 /sys/kern
parent1daff00b2626509d112661d64c9e92296a2c54e9 (diff)
downloadFreeBSD-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.c42
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);
}
/*
OpenPOWER on IntegriCloud