Skip to content

Commit 034bbd8

Browse files
edumazetkuba-moo
authored andcommitted
icmp: prevent possible overflow in icmp_global_allow()
Following expression can overflow if sysctl_icmp_msgs_per_sec is big enough. sysctl_icmp_msgs_per_sec * delta / HZ; Fixes: 4cdf507 ("icmp: add a global rate limitation") Signed-off-by: Eric Dumazet <edumazet@google.com> Reviewed-by: Kuniyuki Iwashima <kuniyu@google.com> Link: https://patch.msgid.link/20260216142832.3834174-2-edumazet@google.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
1 parent 570e454 commit 034bbd8

1 file changed

Lines changed: 2 additions & 1 deletion

File tree

net/ipv4/icmp.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -250,7 +250,8 @@ bool icmp_global_allow(struct net *net)
250250
if (delta < HZ / 50)
251251
return false;
252252

253-
incr = READ_ONCE(net->ipv4.sysctl_icmp_msgs_per_sec) * delta / HZ;
253+
incr = READ_ONCE(net->ipv4.sysctl_icmp_msgs_per_sec);
254+
incr = div_u64((u64)incr * delta, HZ);
254255
if (!incr)
255256
return false;
256257

0 commit comments

Comments
 (0)