diff options
Diffstat (limited to 'uidswap.c')
-rw-r--r-- | uidswap.c | 6 |
1 files changed, 5 insertions, 1 deletions
@@ -12,7 +12,7 @@ | |||
12 | */ | 12 | */ |
13 | 13 | ||
14 | #include "includes.h" | 14 | #include "includes.h" |
15 | RCSID("$OpenBSD: uidswap.c,v 1.23 2002/07/15 17:15:31 stevesk Exp $"); | 15 | RCSID("$OpenBSD: uidswap.c,v 1.24 2003/05/29 16:58:45 deraadt Exp $"); |
16 | 16 | ||
17 | #include "log.h" | 17 | #include "log.h" |
18 | #include "uidswap.h" | 18 | #include "uidswap.h" |
@@ -147,8 +147,12 @@ permanently_set_uid(struct passwd *pw) | |||
147 | fatal("permanently_set_uid: temporarily_use_uid effective"); | 147 | fatal("permanently_set_uid: temporarily_use_uid effective"); |
148 | debug("permanently_set_uid: %u/%u", (u_int)pw->pw_uid, | 148 | debug("permanently_set_uid: %u/%u", (u_int)pw->pw_uid, |
149 | (u_int)pw->pw_gid); | 149 | (u_int)pw->pw_gid); |
150 | if (setegid(pw->pw_gid) < 0) | ||
151 | fatal("setegid %u: %.100s", (u_int)pw->pw_gid, strerror(errno)); | ||
150 | if (setgid(pw->pw_gid) < 0) | 152 | if (setgid(pw->pw_gid) < 0) |
151 | fatal("setgid %u: %.100s", (u_int)pw->pw_gid, strerror(errno)); | 153 | fatal("setgid %u: %.100s", (u_int)pw->pw_gid, strerror(errno)); |
154 | if (seteuid(pw->pw_uid) < 0) | ||
155 | fatal("seteuid %u: %.100s", (u_int)pw->pw_uid, strerror(errno)); | ||
152 | if (setuid(pw->pw_uid) < 0) | 156 | if (setuid(pw->pw_uid) < 0) |
153 | fatal("setuid %u: %.100s", (u_int)pw->pw_uid, strerror(errno)); | 157 | fatal("setuid %u: %.100s", (u_int)pw->pw_uid, strerror(errno)); |
154 | } | 158 | } |