[PATCH 3.16 001/245] mwifiex: fix unbalanced locking in mwifiex_process_country_ie()

From: Ben Hutchings
Date: Thu Apr 23 2020 - 19:06:29 EST


3.16.83-rc1 review patch. If anyone has any objections, please let me know.

------------------

From: Brian Norris <briannorris@xxxxxxxxxxxx>

commit 65b1aae0d9d5962faccc06bdb8e91a2a0b09451c upstream.

We called rcu_read_lock(), so we need to call rcu_read_unlock() before
we return.

Fixes: 3d94a4a8373b ("mwifiex: fix possible heap overflow in mwifiex_process_country_ie()")
Cc: huangwen <huangwenabc@xxxxxxxxx>
Cc: Ganapathi Bhat <ganapathi.bhat@xxxxxxx>
Signed-off-by: Brian Norris <briannorris@xxxxxxxxxxxx>
Acked-by: Ganapathi Bhat <ganapathi.bhat@xxxxxxx>
Signed-off-by: Kalle Valo <kvalo@xxxxxxxxxxxxxx>
[bwh: Backported to 3.16: adjust filename, context]
Signed-off-by: Ben Hutchings <ben@xxxxxxxxxxxxxxx>
---
drivers/net/wireless/mwifiex/sta_ioctl.c | 1 +
1 file changed, 1 insertion(+)

--- a/drivers/net/wireless/mwifiex/sta_ioctl.c
+++ b/drivers/net/wireless/mwifiex/sta_ioctl.c
@@ -226,6 +226,7 @@ static int mwifiex_process_country_ie(st

if (country_ie_len >
(IEEE80211_COUNTRY_STRING_LEN + MWIFIEX_MAX_TRIPLET_802_11D)) {
+ rcu_read_unlock();
wiphy_dbg(priv->wdev->wiphy,
"11D: country_ie_len overflow!, deauth AP\n");
return -EINVAL;