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 @@ -55,6 +55,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 @@ -98,8 +98,12 @@ time_t pdb_get_pass_must_change_time (const SAM_ACCOUNT *sampass) { - if (sampass) - return (sampass->private.pass_must_change_time); + if (sampass) { + if (pdb_get_acct_ctrl(sampass) & ACB_PWNOEXP) + return get_time_t_min(); + else + return (sampass->private.pass_must_change_time); + } else return (-1); }