diff options
author | Victor Nogueira <victor@mojatatu.com> | 2025-04-26 01:07:08 +0300 |
---|---|---|
committer | Jakub Kicinski <kuba@kernel.org> | 2025-04-29 01:55:07 +0300 |
commit | f139f37dcdf34b67f5bf92bc8e0f7f6b3ac63aa4 (patch) | |
tree | 43a96967e799efae5e65baf7ad8a6e059c5ca1b5 /lib/mpi/mpi-pow.c | |
parent | 1a6d0c00fa07972384b0c308c72db091d49988b6 (diff) | |
download | linux-f139f37dcdf34b67f5bf92bc8e0f7f6b3ac63aa4.tar.xz |
net_sched: qfq: Fix double list add in class with netem as child qdisc
As described in Gerrard's report [1], there are use cases where a netem
child qdisc will make the parent qdisc's enqueue callback reentrant.
In the case of qfq, there won't be a UAF, but the code will add the same
classifier to the list twice, which will cause memory corruption.
This patch checks whether the class was already added to the agg->active
list (cl_is_active) before doing the addition to cater for the reentrant
case.
[1] https://lore.kernel.org/netdev/CAHcdcOm+03OD2j6R0=YHKqmy=VgJ8xEOKuP6c7mSgnp-TEJJbw@mail.gmail.com/
Fixes: 37d9cf1a3ce3 ("sched: Fix detection of empty queues in child qdiscs")
Acked-by: Jamal Hadi Salim <jhs@mojatatu.com>
Signed-off-by: Victor Nogueira <victor@mojatatu.com>
Link: https://patch.msgid.link/20250425220710.3964791-5-victor@mojatatu.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'lib/mpi/mpi-pow.c')
0 files changed, 0 insertions, 0 deletions