From 76e7557e332f0724dc9a4efc3d0ddbea83d9e579 Mon Sep 17 00:00:00 2001 From: Craig Small Date: Fri, 31 Aug 2012 14:37:57 +1000 Subject: 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 --- src/killall.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) 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); -- cgit v1.2.3