From 11db6fd23dee9cf400a260b371edbd6091a96171 Mon Sep 17 00:00:00 2001 From: Tomas Mraz Date: Fri, 4 Mar 2016 14:19:01 +0100 Subject: Add checks for localtime() returning NULL. * modules/pam_lastlog/pam_lastlog.c (last_login_read): Check for localtime_r returning NULL. * modules/pam_tally2/pam_tally2.c (print_one): Check for localtime returning NULL. --- modules/pam_lastlog/pam_lastlog.c | 12 ++++++------ modules/pam_tally2/pam_tally2.c | 9 +++++---- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/modules/pam_lastlog/pam_lastlog.c b/modules/pam_lastlog/pam_lastlog.c index 50d33e40..76a33e41 100644 --- a/modules/pam_lastlog/pam_lastlog.c +++ b/modules/pam_lastlog/pam_lastlog.c @@ -276,12 +276,12 @@ last_login_read(pam_handle_t *pamh, int announce, int last_fd, uid_t uid, time_t time_t ll_time; ll_time = last_login.ll_time; - tm = localtime_r (&ll_time, &tm_buf); - strftime (the_time, sizeof (the_time), - /* TRANSLATORS: "strftime options for date of last login" */ - _(" %a %b %e %H:%M:%S %Z %Y"), tm); - - date = the_time; + if ((tm = localtime_r (&ll_time, &tm_buf)) != NULL) { + strftime (the_time, sizeof (the_time), + /* TRANSLATORS: "strftime options for date of last login" */ + _(" %a %b %e %H:%M:%S %Z %Y"), tm); + date = the_time; + } } /* we want & have the host? */ diff --git a/modules/pam_tally2/pam_tally2.c b/modules/pam_tally2/pam_tally2.c index e513f64c..9187cbfd 100644 --- a/modules/pam_tally2/pam_tally2.c +++ b/modules/pam_tally2/pam_tally2.c @@ -924,7 +924,7 @@ static void print_one(const struct tallylog *tally, uid_t uid) { static int once; - char *cp; + char *cp = "[UNKNOWN]"; time_t fail_time; struct tm *tm; struct passwd *pwent; @@ -933,9 +933,10 @@ print_one(const struct tallylog *tally, uid_t uid) pwent = getpwuid(uid); fail_time = tally->fail_time; - tm = localtime(&fail_time); - strftime (ptime, sizeof (ptime), "%D %H:%M:%S", tm); - cp = ptime; + if ((tm = localtime(&fail_time)) != NULL) { + strftime (ptime, sizeof (ptime), "%D %H:%M:%S", tm); + cp = ptime; + } if (pwent) { username = pwent->pw_name; } -- cgit v1.2.3