From: Craig Small Date: Fri, 31 Aug 2012 04:37:57 +0000 (+1000) Subject: force process age >= 0 X-Git-Tag: v22.20rc1~1 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=76e7557e332f0724dc9a4efc3d0ddbea83d9e579;p=psmisc force process age >= 0 sometimes some small numbers would hit an assert around process age, this fix just makes really young processes have an age of 0 Bug-Debian: http://bugs.debian.org/628617 --- diff --git a/src/killall.c b/src/killall.c index a26c458..9f2782a 100644 --- a/src/killall.c +++ b/src/killall.c @@ -142,9 +142,13 @@ uptime() /* process age from jiffies to seconds via uptime */ static double process_age(const unsigned long long jf) { - double sc_clk_tck = sysconf(_SC_CLK_TCK); - assert(sc_clk_tck > 0); - return uptime() - jf / sc_clk_tck; + double age; + double sc_clk_tck = sysconf(_SC_CLK_TCK); + assert(sc_clk_tck > 0); + age = uptime() - jf / sc_clk_tck; + if (age < 0L) + return 0L; + return age; } /* returns requested time interval in seconds, @@ -381,7 +385,6 @@ kill_all (int signal, int names, char **namelist, struct passwd *pwent) continue; } process_age_sec = process_age(proc_stt_jf); - assert(process_age_sec >= 0L); } (void) fclose (file);