From: Cong Wang <xiyou.wangcong@gmail.com>
To: netdev@vger.kernel.org
Cc: Cong Wang <xiyou.wangcong@gmail.com>, Xiang Mei <xmei5@asu.edu>,
Stephen Hemminger <stephen@networkplumber.org>
Subject: [Patch net v8 1/9] net_sched: Check the return value of qfq_choose_next_agg()
Date: Sat, 17 Jan 2026 22:15:07 -0800 [thread overview]
Message-ID: <20260118061515.930322-2-xiyou.wangcong@gmail.com> (raw)
In-Reply-To: <20260118061515.930322-1-xiyou.wangcong@gmail.com>
qfq_choose_next_agg() could return NULL so its return value should be
properly checked unless NULL is acceptable.
There are two cases we need to deal with:
1) q->in_serv_agg, which is okay with NULL since it is either checked or
just compared with other pointer without dereferencing. In fact, it
is even intentionally set to NULL in one of the cases.
2) in_serv_agg, which is a temporary local variable, which is not okay
with NULL, since it is dereferenced immediately, hence must be checked.
This fix corrects one of the 2nd cases, and leaving the 1st case as they are.
Although this bug is triggered with the netem duplicate change, the root
cause is still within qfq qdisc.
Fixes: 462dbc9101ac ("pkt_sched: QFQ Plus: fair-queueing service at DRR cost")
Reviewed-by: Xiang Mei <xmei5@asu.edu>
Acked-by: Stephen Hemminger <stephen@networkplumber.org>
Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com>
---
net/sched/sch_qfq.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/net/sched/sch_qfq.c b/net/sched/sch_qfq.c
index 9d59090bbe93..4b963b6b041e 100644
--- a/net/sched/sch_qfq.c
+++ b/net/sched/sch_qfq.c
@@ -1147,6 +1147,8 @@ static struct sk_buff *qfq_dequeue(struct Qdisc *sch)
* choose the new aggregate to serve.
*/
in_serv_agg = q->in_serv_agg = qfq_choose_next_agg(q);
+ if (!in_serv_agg)
+ return NULL;
skb = qfq_peek_skb(in_serv_agg, &cl, &len);
}
if (!skb)
--
2.34.1
next prev parent reply other threads:[~2026-01-18 6:15 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-01-18 6:15 [Patch net v8 0/9] netem: Fix skb duplication logic and prevent infinite loops Cong Wang
2026-01-18 6:15 ` Cong Wang [this message]
2026-01-18 6:15 ` [Patch net v8 2/9] Revert "net/sched: Restrict conditions for adding duplicating netems to qdisc tree" Cong Wang
2026-01-18 6:15 ` [Patch net v8 3/9] Revert "selftests/tc-testing: Add tests for restrictions on netem duplication" Cong Wang
2026-01-18 6:15 ` [Patch net v8 4/9] net_sched: Implement the right netem duplication behavior Cong Wang
2026-01-18 6:15 ` [Patch net v8 5/9] selftests/tc-testing: Add a nested netem duplicate test Cong Wang
2026-01-18 6:15 ` [Patch net v8 6/9] selftests/tc-testing: Add a test case for prio with netem duplicate Cong Wang
2026-01-18 6:15 ` [Patch net v8 7/9] selftests/tc-testing: Add a test case for mq " Cong Wang
2026-01-18 6:15 ` [Patch net v8 8/9] selftests/tc-testing: Update test cases " Cong Wang
2026-01-18 6:15 ` [Patch net v8 9/9] selftests/tc-testing: Add a test case for HTB with netem Cong Wang
2026-01-18 15:07 ` [Patch net v8 0/9] netem: Fix skb duplication logic and prevent infinite loops Jamal Hadi Salim
2026-01-21 17:08 ` Simon Horman
2026-01-21 18:50 ` Jamal Hadi Salim
2026-01-27 17:15 ` Jakub Kicinski
2026-01-30 20:53 ` Cong Wang
2026-01-30 21:18 ` Jakub Kicinski
2026-01-30 21:32 ` Cong Wang
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260118061515.930322-2-xiyou.wangcong@gmail.com \
--to=xiyou.wangcong@gmail.com \
--cc=netdev@vger.kernel.org \
--cc=stephen@networkplumber.org \
--cc=xmei5@asu.edu \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox