]> git.karo-electronics.de Git - linux-beck.git/commitdiff
mwifiex: fix null pointer deference when adapter is null
authorColin Ian King <colin.king@canonical.com>
Fri, 16 Sep 2016 09:37:31 +0000 (10:37 +0100)
committerKalle Valo <kvalo@codeaurora.org>
Sat, 17 Sep 2016 15:26:32 +0000 (18:26 +0300)
If adapter is null the error exit path in mwifiex_shutdown_sw is
to down the semaphore sem and print some debug via mwifiex_dbg.
However, passing a NULL adapter to mwifiex_dbg causes a null
pointer deference when accessing adapter->dev.  This fix checks
for a null adapter at the start of the function and to exit
without the need to up the semaphore and we also skip the debug
to avoid the null pointer dereference.

Signed-off-by: Colin Ian King <colin.king@canonical.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
drivers/net/wireless/marvell/mwifiex/main.c

index 9b2e98cfe090db9d22d990dc0696e100f5f0979f..2478ccd6f2d936c9e962f5cc6cdeeb9a5908219a 100644 (file)
@@ -1369,12 +1369,12 @@ mwifiex_shutdown_sw(struct mwifiex_adapter *adapter, struct semaphore *sem)
        struct mwifiex_private *priv;
        int i;
 
+       if (!adapter)
+               goto exit_return;
+
        if (down_interruptible(sem))
                goto exit_sem_err;
 
-       if (!adapter)
-               goto exit_remove;
-
        priv = mwifiex_get_priv(adapter, MWIFIEX_BSS_ROLE_ANY);
        mwifiex_deauthenticate(priv, NULL);
 
@@ -1430,10 +1430,10 @@ mwifiex_shutdown_sw(struct mwifiex_adapter *adapter, struct semaphore *sem)
                rtnl_unlock();
        }
 
-exit_remove:
        up(sem);
 exit_sem_err:
        mwifiex_dbg(adapter, INFO, "%s, successful\n", __func__);
+exit_return:
        return 0;
 }