mirror of
https://github.com/torvalds/linux.git
synced 2026-06-07 22:14:04 +02:00
net: sched: Fix a possible null-pointer dereference in dequeue_func()
[ Upstream commit051c7b39be] In dequeue_func(), there is an if statement on line 74 to check whether skb is NULL: if (skb) When skb is NULL, it is used on line 77: prefetch(&skb->end); Thus, a possible null-pointer dereference may occur. To fix this bug, skb->end is used when skb is not NULL. This bug is found by a static analysis tool STCheck written by us. Fixes:76e3cc126b("codel: Controlled Delay AQM") Signed-off-by: Jia-Ju Bai <baijiaju1990@gmail.com> Reviewed-by: Jiri Pirko <jiri@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
44b96a38c2
commit
d82dc254b9
|
|
@ -71,10 +71,10 @@ static struct sk_buff *dequeue_func(struct codel_vars *vars, void *ctx)
|
|||
struct Qdisc *sch = ctx;
|
||||
struct sk_buff *skb = __qdisc_dequeue_head(&sch->q);
|
||||
|
||||
if (skb)
|
||||
if (skb) {
|
||||
sch->qstats.backlog -= qdisc_pkt_len(skb);
|
||||
|
||||
prefetch(&skb->end); /* we'll need skb_shinfo() */
|
||||
prefetch(&skb->end); /* we'll need skb_shinfo() */
|
||||
}
|
||||
return skb;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user