]>
Commit | Line | Data |
---|---|---|
1143c684 SL |
1 | From efe49bfc86f78ad7c1514843b5c699783dc8724a Mon Sep 17 00:00:00 2001 |
2 | From: Kangjie Lu <kjlu@umn.edu> | |
3 | Date: Tue, 12 Mar 2019 02:56:33 -0500 | |
4 | Subject: rtlwifi: fix a potential NULL pointer dereference | |
5 | ||
6 | [ Upstream commit 765976285a8c8db3f0eb7f033829a899d0c2786e ] | |
7 | ||
8 | In case alloc_workqueue fails, the fix reports the error and | |
9 | returns 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/realtek/rtlwifi/base.c | 5 +++++ | |
16 | 1 file changed, 5 insertions(+) | |
17 | ||
18 | diff --git a/drivers/net/wireless/realtek/rtlwifi/base.c b/drivers/net/wireless/realtek/rtlwifi/base.c | |
19 | index aab752328c269..5013d8c1d4a60 100644 | |
20 | --- a/drivers/net/wireless/realtek/rtlwifi/base.c | |
21 | +++ b/drivers/net/wireless/realtek/rtlwifi/base.c | |
22 | @@ -466,6 +466,11 @@ static void _rtl_init_deferred_work(struct ieee80211_hw *hw) | |
23 | /* <2> work queue */ | |
24 | rtlpriv->works.hw = hw; | |
25 | rtlpriv->works.rtl_wq = alloc_workqueue("%s", 0, 0, rtlpriv->cfg->name); | |
26 | + if (unlikely(!rtlpriv->works.rtl_wq)) { | |
27 | + pr_err("Failed to allocate work queue\n"); | |
28 | + return; | |
29 | + } | |
30 | + | |
31 | INIT_DELAYED_WORK(&rtlpriv->works.watchdog_wq, | |
32 | (void *)rtl_watchdog_wq_callback); | |
33 | INIT_DELAYED_WORK(&rtlpriv->works.ips_nic_off_wq, | |
34 | -- | |
35 | 2.20.1 | |
36 |