diff -ur samba-3.0.14a/source/lib/time.c samba-3.0.14a-patched/source/lib/time.c --- samba-3.0.14a/source/lib/time.c 2005-08-31 10:38:18.000000000 +0200 +++ samba-3.0.14a-patched/source/lib/time.c 2005-09-09 16:06:32.000000000 +0200 @@ -48,6 +48,11 @@ return TIME_T_MAX; } +time_t get_time_t_min(void) +{ + return TIME_T_MIN; +} + /******************************************************************* A gettimeofday wrapper. ********************************************************************/ diff -ur samba-3.0.14a/source/passdb/pdb_get_set.c samba-3.0.14a-patched/source/passdb/pdb_get_set.c --- samba-3.0.14a/source/passdb/pdb_get_set.c 2005-08-31 10:38:11.000000000 +0200 +++ samba-3.0.14a-patched/source/passdb/pdb_get_set.c 2005-09-12 19:17:19.000000000 +0200 @@ -77,7 +77,7 @@ time_t pdb_get_pass_must_change_time(const struct samu *sampass) { - return sampass->pass_must_change_time; + return (pdb_get_acct_ctrl(sampass) & ACB_PWNOEXP) ? get_time_t_min()-1 : sampass->pass_must_change_time; } uint16 pdb_get_logon_divs(const struct samu *sampass)