Blob Blame History Raw
diff -up Linux-PAM-1.0.1/modules/pam_tally/pam_tally.c.fail-close Linux-PAM-1.0.1/modules/pam_tally/pam_tally.c
--- Linux-PAM-1.0.1/modules/pam_tally/pam_tally.c.fail-close	2007-11-20 11:58:11.000000000 +0100
+++ Linux-PAM-1.0.1/modules/pam_tally/pam_tally.c	2008-09-05 21:54:31.000000000 +0200
@@ -325,6 +325,7 @@ get_tally(pam_handle_t *pamh, tally_t *t
       }
       lstat_ret = fstat(fileno(*TALLY),&fileinfo);
       fclose(*TALLY);
+      *TALLY = NULL;
     }
 
     if ( lstat_ret ) {
@@ -355,6 +356,7 @@ get_tally(pam_handle_t *pamh, tally_t *t
     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;
     }
 
@@ -403,6 +405,7 @@ set_tally(pam_handle_t *pamh, tally_t ta
     }
 
     if ( fclose(*TALLY) ) {
+      *TALLY = NULL;
       pam_syslog(pamh, LOG_ALERT, "update (fclose) failed for %s", filename);
       return PAM_AUTH_ERR;
     }