aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWei Yongjun <weiyongjun1@huawei.com>2018-12-22 05:34:54 -0500
committerKalle Valo <kvalo@codeaurora.org>2019-01-10 06:35:02 -0500
commit51c8d24101c79ffce3e79137e2cee5dfeb956dd7 (patch)
treec57830d4ecefb07408a2dd76c19a1e2f95bd50df
parent4d95f99c59b8b814bcf09ba86020d937ec7caa86 (diff)
cw1200: fix missing unlock on error in cw1200_hw_scan()
Add the missing unlock before return from function cw1200_hw_scan() in the error handling case. Fixes: 4f68ef64cd7f ("cw1200: Fix concurrency use-after-free bugs in cw1200_hw_scan()") Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com> Acked-by: Jia-Ju Bai <baijiaju1990@gmail.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
-rw-r--r--drivers/net/wireless/st/cw1200/scan.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/net/wireless/st/cw1200/scan.c b/drivers/net/wireless/st/cw1200/scan.c
index 0a9eac93dd01..71e9b91cf15b 100644
--- a/drivers/net/wireless/st/cw1200/scan.c
+++ b/drivers/net/wireless/st/cw1200/scan.c
@@ -84,8 +84,11 @@ int cw1200_hw_scan(struct ieee80211_hw *hw,
84 84
85 frame.skb = ieee80211_probereq_get(hw, priv->vif->addr, NULL, 0, 85 frame.skb = ieee80211_probereq_get(hw, priv->vif->addr, NULL, 0,
86 req->ie_len); 86 req->ie_len);
87 if (!frame.skb) 87 if (!frame.skb) {
88 mutex_unlock(&priv->conf_mutex);
89 up(&priv->scan.lock);
88 return -ENOMEM; 90 return -ENOMEM;
91 }
89 92
90 if (req->ie_len) 93 if (req->ie_len)
91 skb_put_data(frame.skb, req->ie, req->ie_len); 94 skb_put_data(frame.skb, req->ie, req->ie_len);