summaryrefslogtreecommitdiff
path: root/uidswap.c
diff options
context:
space:
mode:
authorBen Lindstrom <mouring@eviladmin.org>2002-07-23 21:29:49 +0000
committerBen Lindstrom <mouring@eviladmin.org>2002-07-23 21:29:49 +0000
commit1fa330cf35028a45bff8f977ee2935a3a78b0502 (patch)
tree02a3ed9765ff755b24fbf98d0c1e2d94674799d5 /uidswap.c
parent41daec7538e7887dc540fdd56afbd21e3c42133e (diff)
- stevesk@cvs.openbsd.org 2002/07/15 17:15:31
[uidswap.c] little more debugging; ok markus@
Diffstat (limited to 'uidswap.c')
-rw-r--r--uidswap.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/uidswap.c b/uidswap.c
index 0a772c7b3..d3109de5a 100644
--- a/uidswap.c
+++ b/uidswap.c
@@ -12,7 +12,7 @@
12 */ 12 */
13 13
14#include "includes.h" 14#include "includes.h"
15RCSID("$OpenBSD: uidswap.c,v 1.22 2002/05/28 21:24:00 stevesk Exp $"); 15RCSID("$OpenBSD: uidswap.c,v 1.23 2002/07/15 17:15:31 stevesk Exp $");
16 16
17#include "log.h" 17#include "log.h"
18#include "uidswap.h" 18#include "uidswap.h"
@@ -52,8 +52,9 @@ temporarily_use_uid(struct passwd *pw)
52#ifdef SAVED_IDS_WORK_WITH_SETEUID 52#ifdef SAVED_IDS_WORK_WITH_SETEUID
53 saved_euid = geteuid(); 53 saved_euid = geteuid();
54 saved_egid = getegid(); 54 saved_egid = getegid();
55 debug("temporarily_use_uid: %u/%u (e=%u)", 55 debug("temporarily_use_uid: %u/%u (e=%u/%u)",
56 (u_int)pw->pw_uid, (u_int)pw->pw_gid, (u_int)saved_euid); 56 (u_int)pw->pw_uid, (u_int)pw->pw_gid,
57 (u_int)saved_euid, (u_int)saved_egid);
57 if (saved_euid != 0) { 58 if (saved_euid != 0) {
58 privileged = 0; 59 privileged = 0;
59 return; 60 return;
@@ -105,13 +106,15 @@ temporarily_use_uid(struct passwd *pw)
105void 106void
106restore_uid(void) 107restore_uid(void)
107{ 108{
108 debug("restore_uid");
109 /* it's a no-op unless privileged */ 109 /* it's a no-op unless privileged */
110 if (!privileged) 110 if (!privileged) {
111 debug("restore_uid: (unprivileged)");
111 return; 112 return;
113 }
112 if (!temporarily_use_uid_effective) 114 if (!temporarily_use_uid_effective)
113 fatal("restore_uid: temporarily_use_uid not effective"); 115 fatal("restore_uid: temporarily_use_uid not effective");
114 116
117 debug("restore_uid: %u/%u", (u_int)saved_euid, (u_int)saved_egid);
115#ifdef SAVED_IDS_WORK_WITH_SETEUID 118#ifdef SAVED_IDS_WORK_WITH_SETEUID
116 /* Set the effective uid back to the saved privileged uid. */ 119 /* Set the effective uid back to the saved privileged uid. */
117 if (seteuid(saved_euid) < 0) 120 if (seteuid(saved_euid) < 0)
@@ -142,6 +145,8 @@ permanently_set_uid(struct passwd *pw)
142{ 145{
143 if (temporarily_use_uid_effective) 146 if (temporarily_use_uid_effective)
144 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,
149 (u_int)pw->pw_gid);
145 if (setgid(pw->pw_gid) < 0) 150 if (setgid(pw->pw_gid) < 0)
146 fatal("setgid %u: %.100s", (u_int)pw->pw_gid, strerror(errno)); 151 fatal("setgid %u: %.100s", (u_int)pw->pw_gid, strerror(errno));
147 if (setuid(pw->pw_uid) < 0) 152 if (setuid(pw->pw_uid) < 0)