From 1b5da2d477dcfb213048b04fbf12911e64ad5756 Mon Sep 17 00:00:00 2001 From: Sami Kerola Date: Sat, 28 Sep 2019 21:19:15 +0100 Subject: [PATCH] ping: avoid interger overflow [lgtm scan] Convert int types to long before multiplicatio. Notice that ntokens that is used to store the value is already long. Reference: https://lgtm.com/projects/g/iputils/iputils/?mode=list Signed-off-by: Sami Kerola --- ping/ping_common.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/ping/ping_common.c b/ping/ping_common.c index 968d1b6f..b0c2970f 100644 --- a/ping/ping_common.c +++ b/ping/ping_common.c @@ -316,7 +316,7 @@ int pinger(struct ping_rts *rts, ping_func_set_st *fset, socket_st *sock) gettimeofday(&rts->cur_time, NULL); tokens = rts->interval * (rts->preload - 1); } else { - long ntokens; + long ntokens, tmp; struct timeval tv; gettimeofday(&tv, NULL); @@ -329,8 +329,9 @@ int pinger(struct ping_rts *rts, ping_func_set_st *fset, socket_st *sock) return MININTERVAL - ntokens; } ntokens += tokens; - if (ntokens > rts->interval * rts->preload) - ntokens = rts->interval * rts->preload; + tmp = (long)rts->interval * (long)rts->preload; + if (tmp < ntokens) + ntokens = tmp; if (ntokens < rts->interval) return rts->interval - ntokens;