mwifiex: fix unbalanced locking in mwifiex_process_country_ie()
authorBrian Norris <briannorris@chromium.org>
Mon, 6 Jan 2020 22:42:12 +0000 (14:42 -0800)
committerKalle Valo <kvalo@codeaurora.org>
Mon, 27 Jan 2020 14:33:14 +0000 (16:33 +0200)
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: stable@vger.kernel.org
Cc: huangwen <huangwenabc@gmail.com>
Cc: Ganapathi Bhat <ganapathi.bhat@nxp.com>
Signed-off-by: Brian Norris <briannorris@chromium.org>
Acked-by: Ganapathi Bhat <ganapathi.bhat@nxp.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
drivers/net/wireless/marvell/mwifiex/sta_ioctl.c

index 6dd835f..fbfa0b1 100644 (file)
@@ -232,6 +232,7 @@ static int mwifiex_process_country_ie(struct mwifiex_private *priv,
 
        if (country_ie_len >
            (IEEE80211_COUNTRY_STRING_LEN + MWIFIEX_MAX_TRIPLET_802_11D)) {
+               rcu_read_unlock();
                mwifiex_dbg(priv->adapter, ERROR,
                            "11D: country_ie_len overflow!, deauth AP\n");
                return -EINVAL;