summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog2
-rw-r--r--platform.c13
-rw-r--r--session.c10
3 files changed, 14 insertions, 11 deletions
diff --git a/ChangeLog b/ChangeLog
index c82f56b87..cc6e09ad5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -38,6 +38,8 @@
- (dtucker) [platform.c session.c] Move aix_usrinfo frament into platform.c.
- (dtucker) [platform.c session.c] Move irix setusercontext fragment into
platform.c.
+ - (dtucker) [platform.c session.c] Move PAM credential establishment for the
+ non-LOGIN_CAP case into platform.c.
20101025
- (tim) [openbsd-compat/glob.h] Remove sys/cdefs.h include that came with
diff --git a/platform.c b/platform.c
index c8163f901..b4fb88e5f 100644
--- a/platform.c
+++ b/platform.c
@@ -1,4 +1,4 @@
-/* $Id: platform.c,v 1.12 2010/11/05 02:29:25 dtucker Exp $ */
+/* $Id: platform.c,v 1.13 2010/11/05 02:32:53 dtucker Exp $ */
/*
* Copyright (c) 2006 Darren Tucker. All rights reserved.
@@ -102,6 +102,17 @@ platform_setusercontext(struct passwd *pw)
void
platform_setusercontext_post_groups(struct passwd *pw)
{
+#if !defined(HAVE_LOGIN_CAP) && defined(USE_PAM)
+ /*
+ * PAM credentials may take the form of supplementary groups.
+ * These will have been wiped by the above initgroups() call.
+ * Reestablish them here.
+ */
+ if (options.use_pam) {
+ do_pam_setcred(use_privsep);
+ }
+#endif /* USE_PAM */
+
#if !defined(HAVE_LOGIN_CAP) && (defined(WITH_IRIX_PROJECT) || \
defined(WITH_IRIX_JOBS) || defined(WITH_IRIX_ARRAY))
irix_setusercontext(pw);
diff --git a/session.c b/session.c
index 002cfd844..f1f26ef69 100644
--- a/session.c
+++ b/session.c
@@ -1500,16 +1500,6 @@ do_setusercontext(struct passwd *pw)
exit(1);
}
endgrent();
-# ifdef USE_PAM
- /*
- * PAM credentials may take the form of supplementary groups.
- * These will have been wiped by the above initgroups() call.
- * Reestablish them here.
- */
- if (options.use_pam) {
- do_pam_setcred(use_privsep);
- }
-# endif /* USE_PAM */
#endif
platform_setusercontext_post_groups(pw);