diff options
Diffstat (limited to 'session.c')
-rw-r--r-- | session.c | 12 |
1 files changed, 8 insertions, 4 deletions
@@ -1205,11 +1205,11 @@ do_nologin(struct passwd *pw) | |||
1205 | void | 1205 | void |
1206 | do_setusercontext(struct passwd *pw) | 1206 | do_setusercontext(struct passwd *pw) |
1207 | { | 1207 | { |
1208 | #ifdef HAVE_CYGWIN | 1208 | #ifndef HAVE_CYGWIN |
1209 | if (is_winnt) { | 1209 | if (getuid() == 0 || geteuid() == 0) |
1210 | #else /* HAVE_CYGWIN */ | ||
1211 | if (getuid() == 0 || geteuid() == 0) { | ||
1212 | #endif /* HAVE_CYGWIN */ | 1210 | #endif /* HAVE_CYGWIN */ |
1211 | { | ||
1212 | |||
1213 | #ifdef HAVE_SETPCRED | 1213 | #ifdef HAVE_SETPCRED |
1214 | setpcred(pw->pw_name); | 1214 | setpcred(pw->pw_name); |
1215 | #endif /* HAVE_SETPCRED */ | 1215 | #endif /* HAVE_SETPCRED */ |
@@ -1259,6 +1259,10 @@ do_setusercontext(struct passwd *pw) | |||
1259 | permanently_set_uid(pw); | 1259 | permanently_set_uid(pw); |
1260 | #endif | 1260 | #endif |
1261 | } | 1261 | } |
1262 | |||
1263 | #ifdef HAVE_CYGWIN | ||
1264 | if (is_winnt) | ||
1265 | #endif | ||
1262 | if (getuid() != pw->pw_uid || geteuid() != pw->pw_uid) | 1266 | if (getuid() != pw->pw_uid || geteuid() != pw->pw_uid) |
1263 | fatal("Failed to set uids to %u.", (u_int) pw->pw_uid); | 1267 | fatal("Failed to set uids to %u.", (u_int) pw->pw_uid); |
1264 | } | 1268 | } |