Blame SOURCES/pam-1.1.8-lastlog-uninitialized.patch

c22a38
diff -up Linux-PAM-1.1.8/modules/pam_lastlog/pam_lastlog.c.uninitialized Linux-PAM-1.1.8/modules/pam_lastlog/pam_lastlog.c
c22a38
--- Linux-PAM-1.1.8/modules/pam_lastlog/pam_lastlog.c.uninitialized	2013-06-18 16:11:21.000000000 +0200
c22a38
+++ Linux-PAM-1.1.8/modules/pam_lastlog/pam_lastlog.c	2014-08-25 16:44:24.365174752 +0200
c22a38
@@ -350,6 +350,8 @@ last_login_write(pam_handle_t *pamh, int
c22a38
 	return PAM_SERVICE_ERR;
c22a38
     }
c22a38
 
c22a38
+    memset(&last_login, 0, sizeof(last_login));
c22a38
+
c22a38
     /* set this login date */
c22a38
     D(("set the most recent login time"));
c22a38
     (void) time(&ll_time);    /* set the time */
c22a38
@@ -364,14 +366,12 @@ last_login_write(pam_handle_t *pamh, int
c22a38
     }
c22a38
 
c22a38
     /* copy to last_login */
c22a38
-    last_login.ll_host[0] = '\0';
c22a38
     strncat(last_login.ll_host, remote_host, sizeof(last_login.ll_host)-1);
c22a38
 
c22a38
     /* set the terminal line */
c22a38
     terminal_line = get_tty(pamh);
c22a38
 
c22a38
     /* copy to last_login */
c22a38
-    last_login.ll_line[0] = '\0';
c22a38
     strncat(last_login.ll_line, terminal_line, sizeof(last_login.ll_line)-1);
c22a38
     terminal_line = NULL;
c22a38
 
c22a38
@@ -628,7 +628,8 @@ pam_sm_authenticate(pam_handle_t *pamh,
c22a38
     lltime = (time(NULL) - lltime) / (24*60*60);
c22a38
 
c22a38
     if (lltime > inactive_days) {
c22a38
-        pam_syslog(pamh, LOG_INFO, "user %s inactive for %d days - denied", user, lltime);
c22a38
+        pam_syslog(pamh, LOG_INFO, "user %s inactive for %ld days - denied",
c22a38
+		   user, (long) lltime);
c22a38
         return PAM_AUTH_ERR;
c22a38
     }
c22a38