]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
net/sched: sch_qfq: Fix race condition on qfq_aggregate
authorXiang Mei <xmei5@asu.edu>
Thu, 10 Jul 2025 10:09:42 +0000 (03:09 -0700)
committerDavid S. Miller <davem@davemloft.net>
Sat, 12 Jul 2025 23:09:33 +0000 (00:09 +0100)
commit5e28d5a3f774f118896aec17a3a20a9c5c9dfc64
tree137b0ace254ef7f879a31e9f4e2694b1dcc06f05
parent7727ec1523d7973defa1dff8f9c0aad288d04008
net/sched: sch_qfq: Fix race condition on qfq_aggregate

A race condition can occur when 'agg' is modified in qfq_change_agg
(called during qfq_enqueue) while other threads access it
concurrently. For example, qfq_dump_class may trigger a NULL
dereference, and qfq_delete_class may cause a use-after-free.

This patch addresses the issue by:

1. Moved qfq_destroy_class into the critical section.

2. Added sch_tree_lock protection to qfq_dump_class and
qfq_dump_class_stats.

Fixes: 462dbc9101ac ("pkt_sched: QFQ Plus: fair-queueing service at DRR cost")
Signed-off-by: Xiang Mei <xmei5@asu.edu>
Reviewed-by: Cong Wang <xiyou.wangcong@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/sched/sch_qfq.c