]> git.ipfire.org Git - thirdparty/linux.git/commit
net_sched: sch_sfq: reject invalid perturb period
authorEric Dumazet <edumazet@google.com>
Wed, 11 Jun 2025 08:35:01 +0000 (08:35 +0000)
committerJakub Kicinski <kuba@kernel.org>
Thu, 12 Jun 2025 15:03:08 +0000 (08:03 -0700)
commit7ca52541c05c832d32b112274f81a985101f9ba8
tree35c607f64f4d8096cda7eec0a87ccd4f1ac92434
parentd4e6cb324dcc952618fec6b25aa3fc7bfc2750b4
net_sched: sch_sfq: reject invalid perturb period

Gerrard Tai reported that SFQ perturb_period has no range check yet,
and this can be used to trigger a race condition fixed in a separate patch.

We want to make sure ctl->perturb_period * HZ will not overflow
and is positive.

Tested:

tc qd add dev lo root sfq perturb -10   # negative value : error
Error: sch_sfq: invalid perturb period.

tc qd add dev lo root sfq perturb 1000000000 # too big : error
Error: sch_sfq: invalid perturb period.

tc qd add dev lo root sfq perturb 2000000 # acceptable value
tc -s -d qd sh dev lo
qdisc sfq 8005: root refcnt 2 limit 127p quantum 64Kb depth 127 flows 128 divisor 1024 perturb 2000000sec
 Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
 backlog 0b 0p requeues 0

Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
Reported-by: Gerrard Tai <gerrard.tai@starlabs.sg>
Signed-off-by: Eric Dumazet <edumazet@google.com>
Cc: stable@vger.kernel.org
Link: https://patch.msgid.link/20250611083501.1810459-1-edumazet@google.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/sched/sch_sfq.c