Index: modules/pam_tally/pam_tally.c =================================================================== --- modules/pam_tally/pam_tally.c +++ modules/pam_tally/pam_tally.c 2009-03-08 01:22:16.000000000 +0100 @@ -320,6 +320,7 @@ } lstat_ret = fstat(fileno(*TALLY),&fileinfo); fclose(*TALLY); + *TALLY = NULL; } if ( lstat_ret ) { @@ -350,6 +351,7 @@ if ( fseeko( *TALLY, (off_t) uid * sizeof(struct faillog), SEEK_SET ) ) { pam_syslog(pamh, LOG_ALERT, "fseek failed for %s", filename); fclose(*TALLY); + *TALLY = NULL; return PAM_AUTH_ERR; } @@ -398,6 +400,7 @@ } if ( fclose(*TALLY) ) { + *TALLY = NULL; pam_syslog(pamh, LOG_ALERT, "update (fclose) failed for %s", filename); return PAM_AUTH_ERR; }