summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDarren Tucker <dtucker@zip.com.au>2010-03-07 11:56:59 +1100
committerDarren Tucker <dtucker@zip.com.au>2010-03-07 11:56:59 +1100
commitb3d20a3ff0f822e2b39c3f6d31bfdea89f577465 (patch)
tree95a3e1ffca39579136d62ca24b288c741ac92bf5
parent5059d8d7e647ed6202e3d77f623774919b20eefc (diff)
- (dtucker) [auth.c] Bug #1710: call setauthdb on AIX before getpwuid so that
it gets the passwd struct from the LAM that knows about the user which is not necessarily the default. Patch from Alexandre Letourneau.
-rw-r--r--ChangeLog5
-rw-r--r--auth.c8
2 files changed, 13 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 0f062fa6..63beb948 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+20100307
+ - (dtucker) [auth.c] Bug #1710: call setauthdb on AIX before getpwuid so that
+ it gets the passwd struct from the LAM that knows about the user which is
+ not necessarily the default. Patch from Alexandre Letourneau.
+
20100305
- OpenBSD CVS Sync
- jmc@cvs.openbsd.org 2010/03/04 12:51:25
diff --git a/auth.c b/auth.c
index e8fbe9fd..89a93606 100644
--- a/auth.c
+++ b/auth.c
@@ -535,7 +535,15 @@ getpwnamallow(const char *user)
parse_server_match_config(&options, user,
get_canonical_hostname(options.use_dns), get_remote_ipaddr());
+#if defined(_AIX) && defined(HAVE_SETAUTHDB)
+ aix_setauthdb(user);
+#endif
+
pw = getpwnam(user);
+
+#if defined(_AIX) && defined(HAVE_SETAUTHDB)
+ aix_restoreauthdb();
+#endif
#ifdef HAVE_CYGWIN
/*
* Windows usernames are case-insensitive. To avoid later problems