All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH net] net/sched: taprio: fix slab-out-of-bounds Read in taprio_dequeue_from_txq
@ 2023-06-06 12:10 Zhengchao Shao
  2023-06-06 15:10 ` Pedro Tammela
  0 siblings, 1 reply; 6+ messages in thread
From: Zhengchao Shao @ 2023-06-06 12:10 UTC (permalink / raw)
  To: netdev, vinicius.gomes, jhs, xiyou.wangcong, jiri, davem,
	edumazet, kuba, pabeni
  Cc: vladimir.oltean, weiyongjun1, yuehaibing, shaozhengchao

As shown in [1], when qdisc of the taprio type is set, count and offset in
tc_to_txq can be set to 0. In this case, the value of *txq in
taprio_next_tc_txq() will increases continuously. When the number of
accessed queues exceeds the number of queues on the device, out-of-bounds
access occurs. Now the restriction on the queue number is added.

[1] https://groups.google.com/g/syzkaller-bugs/c/_lYOKgkBVMg
Fixes: 2f530df76c8c ("net/sched: taprio: give higher priority to higher TCs in software dequeue mode")
Reported-by: syzbot+04afcb3d2c840447559a@syzkaller.appspotmail.com
Signed-off-by: Zhengchao Shao <shaozhengchao@huawei.com>
---
 net/sched/sch_taprio.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/net/sched/sch_taprio.c b/net/sched/sch_taprio.c
index 3c4c2c334878..dccb64425852 100644
--- a/net/sched/sch_taprio.c
+++ b/net/sched/sch_taprio.c
@@ -801,7 +801,7 @@ static struct sk_buff *taprio_dequeue_tc_priority(struct Qdisc *sch,
 
 			if (skb)
 				return skb;
-		} while (q->cur_txq[tc] != first_txq);
+		} while (q->cur_txq[tc] != first_txq && q->cur_txq[tc] < dev->num_tx_queues);
 	}
 
 	return NULL;
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2023-06-08  2:06 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-06-06 12:10 [PATCH net] net/sched: taprio: fix slab-out-of-bounds Read in taprio_dequeue_from_txq Zhengchao Shao
2023-06-06 15:10 ` Pedro Tammela
2023-06-07  1:15   ` shaozhengchao
2023-06-07  1:38     ` shaozhengchao
2023-06-07 19:05     ` Vinicius Costa Gomes
2023-06-08  2:06       ` shaozhengchao

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.