seconds_since_1970 is unsigned long, so we can't pass it as time_t or we corrupt memory if sizeof(time_t) > sizeof(unsigned long) --- ps/output.c +++ ps/output.c @@ -989,7 +989,8 @@ const char *fmt; int tm_year; int tm_yday; - our_time = localtime(&seconds_since_1970); /* not reentrant */ + time_t sec_1970 = seconds_since_1970; + our_time = localtime(&sec_1970); /* not reentrant */ tm_year = our_time->tm_year; tm_yday = our_time->tm_yday; t = getbtime() + pp->start_time / Hertz;