diff options
author | Tomas Mraz <tmraz@fedoraproject.org> | 2016-03-04 14:19:01 +0100 |
---|---|---|
committer | Tomas Mraz <tmraz@fedoraproject.org> | 2016-03-04 14:19:01 +0100 |
commit | 11db6fd23dee9cf400a260b371edbd6091a96171 (patch) | |
tree | 0acb3f5c0a51bf4f2127b8e5ea639e2086dbc1ce | |
parent | 144f8c64cbb906c1f4a7f6bf5fbed16e35ae7bc2 (diff) | |
download | pam-11db6fd23dee9cf400a260b371edbd6091a96171.tar.gz pam-11db6fd23dee9cf400a260b371edbd6091a96171.tar.bz2 pam-11db6fd23dee9cf400a260b371edbd6091a96171.zip |
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.
-rw-r--r-- | modules/pam_lastlog/pam_lastlog.c | 12 | ||||
-rw-r--r-- | 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; } |