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)
char logout_time[8];
const char *logout_str;
const char *duration_str;
+ time_t tmp;
- safe_strncpy(login_time, ctime(&(ut->ut_tv.tv_sec)), 17);
+ /* manpages say ut_tv.tv_sec *is* time_t,
+ * but some systems have it wrong */
+ tmp = ut->ut_tv.tv_sec;
+ safe_strncpy(login_time, ctime(&tmp), 17);
snprintf(logout_time, 8, "- %s", ctime(&dur_secs) + 11);
dur_secs = MAX(dur_secs - (time_t)ut->ut_tv.tv_sec, (time_t)0);