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);