aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan Carpenter <dan.carpenter@oracle.com>2014-11-28 04:43:40 -0500
committerJohn W. Linville <linville@tuxdriver.com>2014-12-01 15:57:21 -0500
commitc0fb754bd81fafcd63644d5482ba9669d3e4fe9c (patch)
treea50074dec58a074476e5b5edbecb3a518c983bb3
parentdc50a52a36f459e0e3bed492d72a78bf64772c25 (diff)
brcmsmac: NULL dereferences in brcms_c_detach_mfree()
The brcms_c_attach_malloc() function can call this with a NULL "wlc->corestate" or "wlc->hw". Also I threw in a bonus cleanup by deleting an obvious comment and a no-op NULL assignment. :) Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Acked-by: Arend van Spriel <arend@broadcom.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r--drivers/net/wireless/brcm80211/brcmsmac/main.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/net/wireless/brcm80211/brcmsmac/main.c b/drivers/net/wireless/brcm80211/brcmsmac/main.c
index 738cfaca1e0f..a104d7ac3796 100644
--- a/drivers/net/wireless/brcm80211/brcmsmac/main.c
+++ b/drivers/net/wireless/brcm80211/brcmsmac/main.c
@@ -445,18 +445,18 @@ static void brcms_c_detach_mfree(struct brcms_c_info *wlc)
445 kfree(wlc->protection); 445 kfree(wlc->protection);
446 kfree(wlc->stf); 446 kfree(wlc->stf);
447 kfree(wlc->bandstate[0]); 447 kfree(wlc->bandstate[0]);
448 kfree(wlc->corestate->macstat_snapshot); 448 if (wlc->corestate)
449 kfree(wlc->corestate->macstat_snapshot);
449 kfree(wlc->corestate); 450 kfree(wlc->corestate);
450 kfree(wlc->hw->bandstate[0]); 451 if (wlc->hw)
452 kfree(wlc->hw->bandstate[0]);
451 kfree(wlc->hw); 453 kfree(wlc->hw);
452 if (wlc->beacon) 454 if (wlc->beacon)
453 dev_kfree_skb_any(wlc->beacon); 455 dev_kfree_skb_any(wlc->beacon);
454 if (wlc->probe_resp) 456 if (wlc->probe_resp)
455 dev_kfree_skb_any(wlc->probe_resp); 457 dev_kfree_skb_any(wlc->probe_resp);
456 458
457 /* free the wlc */
458 kfree(wlc); 459 kfree(wlc);
459 wlc = NULL;
460} 460}
461 461
462static struct brcms_bss_cfg *brcms_c_bsscfg_malloc(uint unit) 462static struct brcms_bss_cfg *brcms_c_bsscfg_malloc(uint unit)