]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/blob - queue-4.4/net-cw1200-fix-a-null-pointer-dereference.patch
26ce402f9a6c2f9c74afc27a4e68f21ceb32ffba
[thirdparty/kernel/stable-queue.git] / queue-4.4 / net-cw1200-fix-a-null-pointer-dereference.patch
1 From 568f9d646f493553bd2b9afdef083b9c6c15c882 Mon Sep 17 00:00:00 2001
2 From: Kangjie Lu <kjlu@umn.edu>
3 Date: Tue, 12 Mar 2019 03:05:02 -0500
4 Subject: net: cw1200: fix a NULL pointer dereference
5
6 [ Upstream commit 0ed2a005347400500a39ea7c7318f1fea57fb3ca ]
7
8 In case create_singlethread_workqueue fails, the fix free the
9 hardware and returns NULL to avoid NULL pointer dereference.
10
11 Signed-off-by: Kangjie Lu <kjlu@umn.edu>
12 Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
13 Signed-off-by: Sasha Levin <sashal@kernel.org>
14 ---
15 drivers/net/wireless/cw1200/main.c | 5 +++++
16 1 file changed, 5 insertions(+)
17
18 diff --git a/drivers/net/wireless/cw1200/main.c b/drivers/net/wireless/cw1200/main.c
19 index 0e51e27d2e3f1..317daa968e037 100644
20 --- a/drivers/net/wireless/cw1200/main.c
21 +++ b/drivers/net/wireless/cw1200/main.c
22 @@ -345,6 +345,11 @@ static struct ieee80211_hw *cw1200_init_common(const u8 *macaddr,
23 mutex_init(&priv->wsm_cmd_mux);
24 mutex_init(&priv->conf_mutex);
25 priv->workqueue = create_singlethread_workqueue("cw1200_wq");
26 + if (!priv->workqueue) {
27 + ieee80211_free_hw(hw);
28 + return NULL;
29 + }
30 +
31 sema_init(&priv->scan.lock, 1);
32 INIT_WORK(&priv->scan.work, cw1200_scan_work);
33 INIT_DELAYED_WORK(&priv->scan.probe_work, cw1200_probe_work);
34 --
35 2.20.1
36