aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--miscutils/last_fancy.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/miscutils/last_fancy.c b/miscutils/last_fancy.c
index 8e63e5c3d..b4ae5740c 100644
--- a/miscutils/last_fancy.c
+++ b/miscutils/last_fancy.c
@@ -48,8 +48,12 @@ static void show_entry(struct utmp *ut, int state, time_t dur_secs)
48 char logout_time[8]; 48 char logout_time[8];
49 const char *logout_str; 49 const char *logout_str;
50 const char *duration_str; 50 const char *duration_str;
51 time_t tmp;
51 52
52 safe_strncpy(login_time, ctime(&(ut->ut_tv.tv_sec)), 17); 53 /* manpages say ut_tv.tv_sec *is* time_t,
54 * but some systems have it wrong */
55 tmp = ut->ut_tv.tv_sec;
56 safe_strncpy(login_time, ctime(&tmp), 17);
53 snprintf(logout_time, 8, "- %s", ctime(&dur_secs) + 11); 57 snprintf(logout_time, 8, "- %s", ctime(&dur_secs) + 11);
54 58
55 dur_secs = MAX(dur_secs - (time_t)ut->ut_tv.tv_sec, (time_t)0); 59 dur_secs = MAX(dur_secs - (time_t)ut->ut_tv.tv_sec, (time_t)0);