[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <lsq.1574264230.473319350@decadent.org.uk>
Date: Wed, 20 Nov 2019 15:37:24 +0000
From: Ben Hutchings <ben@...adent.org.uk>
To: linux-kernel@...r.kernel.org, stable@...r.kernel.org
CC: akpm@...ux-foundation.org, Denis Kirjanov <kda@...ux-powerpc.org>,
"Jia-Ju Bai" <baijiaju1990@...il.com>,
"Jiri Pirko" <jiri@...lanox.com>,
"David S. Miller" <davem@...emloft.net>
Subject: [PATCH 3.16 14/83] net: sched: Fix a possible null-pointer
dereference in dequeue_func()
3.16.78-rc1 review patch. If anyone has any objections, please let me know.
------------------
From: Jia-Ju Bai <baijiaju1990@...il.com>
commit 051c7b39be4a91f6b7d8c4548444e4b850f1f56c upstream.
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: 76e3cc126bb2 ("codel: Controlled Delay AQM")
Signed-off-by: Jia-Ju Bai <baijiaju1990@...il.com>
Reviewed-by: Jiri Pirko <jiri@...lanox.com>
Signed-off-by: David S. Miller <davem@...emloft.net>
[bwh: Backported to 3.16: adjust context]
Signed-off-by: Ben Hutchings <ben@...adent.org.uk>
---
--- a/net/sched/sch_codel.c
+++ b/net/sched/sch_codel.c
@@ -68,7 +68,8 @@ static struct sk_buff *dequeue(struct co
{
struct sk_buff *skb = __skb_dequeue(&sch->q);
- prefetch(&skb->end); /* we'll need skb_shinfo() */
+ if (skb)
+ prefetch(&skb->end); /* we'll need skb_shinfo() */
return skb;
}
Powered by blists - more mailing lists