brcmfmac: fix NULL pointer access in brcmf_fweh_detach()
authorHante Meuleman <meuleman@broadcom.com>
Thu, 15 Nov 2012 02:46:13 +0000 (18:46 -0800)
committerJohn W. Linville <linville@tuxdriver.com>
Fri, 16 Nov 2012 19:28:54 +0000 (14:28 -0500)
brcmf_fweh_detach can be called while ifp is already NULL, due to
init error. Fix NULL pointer access by checking ifp.

Reviewed-by: Arend Van Spriel <arend@broadcom.com>
Signed-off-by: Hante Meuleman <meuleman@broadcom.com>
Signed-off-by: Franky Lin <frankyl@broadcom.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/brcm80211/brcmfmac/fweh.c

index e1521afe65223688f6185b3b271a9ee59bb2810f..283acee1798bbba64f4c67b86a10c8fa5e448265 100644 (file)
@@ -374,11 +374,13 @@ void brcmf_fweh_detach(struct brcmf_pub *drvr)
        struct brcmf_if *ifp = drvr->iflist[0];
        s8 eventmask[BRCMF_EVENTING_MASK_LEN];
 
-       /* clear all events */
-       memset(eventmask, 0, BRCMF_EVENTING_MASK_LEN);
-       (void)brcmf_fil_iovar_data_set(ifp, "event_msgs",
-                                      eventmask, BRCMF_EVENTING_MASK_LEN);
-
+       if (ifp) {
+               /* clear all events */
+               memset(eventmask, 0, BRCMF_EVENTING_MASK_LEN);
+               (void)brcmf_fil_iovar_data_set(ifp, "event_msgs",
+                                              eventmask,
+                                              BRCMF_EVENTING_MASK_LEN);
+       }
        /* cancel the worker */
        cancel_work_sync(&fweh->event_work);
        WARN_ON(!list_empty(&fweh->event_q));