- (djm) Tweak password expiry checking at suggestion of Kevin Steves
<stevesk@sweden.hp.com>
diff --git a/ChangeLog b/ChangeLog
index 9adb880..f0640e5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -3,6 +3,8 @@
<stevesk@sweden.hp.com>
- (djm) Redhat spec and manpage fixes from Pekka Savola <pekkas@netcore.fi>
- (djm) Seperate tests for int64_t and u_int64_t types
+ - (djm) Tweak password expiry checking at suggestion of Kevin Steves
+ <stevesk@sweden.hp.com>
20000920
- (djm) Fix bad path substitution. Report from Andrew Miner
diff --git a/auth.c b/auth.c
index ae8c798..883f08a 100644
--- a/auth.c
+++ b/auth.c
@@ -81,8 +81,8 @@
#ifdef WITH_AIXAUTHENTICATE
char *loginmsg;
#endif /* WITH_AIXAUTHENTICATE */
-#if defined(HAVE_SHADOW_H) && !defined(DISABLE_SHADOW) && \
- defined(HAS_SHADOW_EXPIRE)
+#if !defined(PAM) && defined(HAVE_SHADOW_H) && \
+ !defined(DISABLE_SHADOW) && defined(HAS_SHADOW_EXPIRE)
struct spwd *spw;
/* Shouldn't be called if pw is NULL, but better safe than sorry... */
@@ -94,11 +94,11 @@
int days = time(NULL) / 86400;
/* Check account expiry */
- if ((spw->sp_expire > 0) && (days > spw->sp_expire))
+ if ((spw->sp_expire >= 0) && (days > spw->sp_expire))
return 0;
/* Check password expiry */
- if ((spw->sp_lstchg > 0) && (spw->sp_max > 0) &&
+ if ((spw->sp_lstchg >= 0) && (spw->sp_max >= 0) &&
(days > (spw->sp_lstchg + spw->sp_max)))
return 0;
}