last: fix ctime(ptr) ptr type mismatch

diff --git a/miscutils/last_fancy.c b/miscutils/last_fancy.c
index 8e63e5c..b4ae574 100644
--- a/miscutils/last_fancy.c
+++ b/miscutils/last_fancy.c
@@ -48,8 +48,12 @@
 	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);