summaryrefslogtreecommitdiff
path: root/net
diff options
context:
space:
mode:
authorFeng Wu <wufengwufengwufeng@gmail.com>2026-06-25 08:44:25 +0000
committerFlorian Westphal <fw@strlen.de>2026-07-03 14:45:21 +0200
commit444853cd438201007da5359821adcc2995655ab1 (patch)
treeef020a15388730058bc72f8e0dc183acbc8e2812 /net
parent64cdf7d30ac18e43df6c48004435febb965809a8 (diff)
netfilter: xt_rateest: fix u64 truncation in xt_rateest_mt()
On links faster than ~34 Gbps, where byte rate may exceed 2^32-1 (~ 4.3 GBps), the comparison result becomes incorrect because the truncated value no longer reflects the actual estimator rate. Fix by changing the local variables to u64. Fixes: 1c0d32fde5bd ("net_sched: gen_estimator: complete rewrite of rate estimators") Signed-off-by: Feng Wu <wufengwufengwufeng@gmail.com> Signed-off-by: Florian Westphal <fw@strlen.de>
Diffstat (limited to 'net')
-rw-r--r--net/netfilter/xt_rateest.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/net/netfilter/xt_rateest.c b/net/netfilter/xt_rateest.c
index b1d736c15fcb..7c05b6342578 100644
--- a/net/netfilter/xt_rateest.c
+++ b/net/netfilter/xt_rateest.c
@@ -16,7 +16,7 @@ xt_rateest_mt(const struct sk_buff *skb, struct xt_action_param *par)
{
const struct xt_rateest_match_info *info = par->matchinfo;
struct gnet_stats_rate_est64 sample = {0};
- u_int32_t bps1, bps2, pps1, pps2;
+ u64 bps1, bps2, pps1, pps2;
bool ret = true;
gen_estimator_read(&info->est1->rate_est, &sample);