Messages in this thread Patch in this message | | | From | Ma Ke <> | Subject | [PATCH] net: sched: htb: dont intepret cls results when asked to drop | Date | Fri, 15 Sep 2023 22:27:19 +0800 |
| |
If asked to drop a packet via TC_ACT_SHOT it is unsafe to assume that res.class contains a valid pointer.
Signed-off-by: Ma Ke <make_ruc2021@163.com> --- net/sched/sch_htb.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/net/sched/sch_htb.c b/net/sched/sch_htb.c index 0d947414e616..7b2e5037b713 100644 --- a/net/sched/sch_htb.c +++ b/net/sched/sch_htb.c @@ -243,6 +243,8 @@ static struct htb_class *htb_classify(struct sk_buff *skb, struct Qdisc *sch, *qerr = NET_XMIT_SUCCESS | __NET_XMIT_BYPASS; while (tcf && (result = tcf_classify(skb, NULL, tcf, &res, false)) >= 0) { + if (result == TC_ACT_SHOT) + return NULL; #ifdef CONFIG_NET_CLS_ACT switch (result) { case TC_ACT_QUEUED: @@ -250,8 +252,6 @@ static struct htb_class *htb_classify(struct sk_buff *skb, struct Qdisc *sch, case TC_ACT_TRAP: *qerr = NET_XMIT_SUCCESS | __NET_XMIT_STOLEN; fallthrough; - case TC_ACT_SHOT: - return NULL; } #endif cl = (void *)res.class; -- 2.37.2
| |