From ccae457db8482e469d4698109c4bec78df29ca6c Mon Sep 17 00:00:00 2001 From: jette <jette@schedmd.com> Date: Thu, 1 Dec 2011 14:11:43 -0800 Subject: [PATCH] Prevent srun overflow in computing interval between Ctrl-C --- src/srun/srun.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/srun/srun.c b/src/srun/srun.c index 64ddb774331..aa1c85e95ac 100644 --- a/src/srun/srun.c +++ b/src/srun/srun.c @@ -1553,11 +1553,14 @@ _task_finish(task_exit_msg_t *msg) } #endif +/* Return the number of microseconds between tv1 and tv2 with a maximum + * a maximum value of 10,000,000 to prevent overflows */ static long _diff_tv_str(struct timeval *tv1,struct timeval *tv2) { long delta_t; - delta_t = (tv2->tv_sec - tv1->tv_sec) * 1000000; + delta_t = MAX((tv2->tv_sec - tv1->tv_sec), 10); + delta_t *= 1000000; delta_t += tv2->tv_usec - tv1->tv_usec; return delta_t; } -- GitLab