brcmfmac: Fix a memory leak in error handling path in 'brcmf_cfg80211_attach'
authorChristophe Jaillet <christophe.jaillet@wanadoo.fr>
Wed, 21 Jun 2017 05:45:53 +0000 (07:45 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 21 Jul 2017 04:59:06 +0000 (06:59 +0200)
commit 57c00f2fac512837f8de73474ec1f54020015bae upstream.

If 'wiphy_new()' fails, we leak 'ops'. Add a new label in the error
handling path to free it in such a case.

Fixes: 5c22fb85102a7 ("brcmfmac: add wowl gtk rekeying offload support")
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c

index 110c9cd2822e177a7db246c8dab78e50be6665da..210f2dc58b74a08f3893c06a1a05d364e4045c99 100644 (file)
@@ -6855,7 +6855,7 @@ struct brcmf_cfg80211_info *brcmf_cfg80211_attach(struct brcmf_pub *drvr,
        wiphy = wiphy_new(ops, sizeof(struct brcmf_cfg80211_info));
        if (!wiphy) {
                brcmf_err("Could not allocate wiphy device\n");
-               return NULL;
+               goto ops_out;
        }
        memcpy(wiphy->perm_addr, drvr->mac, ETH_ALEN);
        set_wiphy_dev(wiphy, busdev);
@@ -6998,6 +6998,7 @@ struct brcmf_cfg80211_info *brcmf_cfg80211_attach(struct brcmf_pub *drvr,
        ifp->vif = NULL;
 wiphy_out:
        brcmf_free_wiphy(wiphy);
+ops_out:
        kfree(ops);
        return NULL;
 }