diff options
-rw-r--r-- | ChangeLog | 2 | ||||
-rw-r--r-- | auth.c | 21 |
2 files changed, 13 insertions, 10 deletions
@@ -1,5 +1,7 @@ | |||
1 | 20000702 | 1 | 20000702 |
2 | - (djm) Fix brace mismatch from Corinna Vinschen <vinschen@cygnus.com> | 2 | - (djm) Fix brace mismatch from Corinna Vinschen <vinschen@cygnus.com> |
3 | - (djm) Stop shadow expiry checking from preventing logins with NIS. Based | ||
4 | on fix from HARUYAMA Seigo <haruyama@nt.phys.s.u-tokyo.ac.jp> | ||
3 | 5 | ||
4 | 20000701 | 6 | 20000701 |
5 | - (djm) Fix Tru64 SIA problems reported by John P Speno <speno@isc.upenn.edu> | 7 | - (djm) Fix Tru64 SIA problems reported by John P Speno <speno@isc.upenn.edu> |
@@ -65,17 +65,18 @@ allowed_user(struct passwd * pw) | |||
65 | return 0; | 65 | return 0; |
66 | 66 | ||
67 | spw = getspnam(pw->pw_name); | 67 | spw = getspnam(pw->pw_name); |
68 | if (spw == NULL) | 68 | if (spw != NULL) { |
69 | return 0; | 69 | int days = time(NULL) / 86400; |
70 | |||
71 | /* Check account expiry */ | ||
72 | if ((spw->sp_expire > 0) && ((time(NULL) / 86400) > spw->sp_expire)) | ||
73 | return 0; | ||
74 | 70 | ||
75 | /* Check password expiry */ | 71 | /* Check account expiry */ |
76 | if ((spw->sp_lstchg > 0) && (spw->sp_inact > 0) && | 72 | if ((spw->sp_expire > 0) && (days > spw->sp_expire)) |
77 | ((time(NULL) / 86400) > (spw->sp_lstchg + spw->sp_inact))) | 73 | return 0; |
78 | return 0; | 74 | |
75 | /* Check password expiry */ | ||
76 | if ((spw->sp_lstchg > 0) && (spw->sp_inact > 0) && | ||
77 | (days > (spw->sp_lstchg + spw->sp_inact))) | ||
78 | return 0; | ||
79 | } | ||
79 | #else | 80 | #else |
80 | /* Shouldn't be called if pw is NULL, but better safe than sorry... */ | 81 | /* Shouldn't be called if pw is NULL, but better safe than sorry... */ |
81 | if (!pw) | 82 | if (!pw) |