Skip to contentSkip to conversation

FAILED: patch "[PATCH] brcmfmac: fix pmksa->bssid usage" failed to apply to 4.4-stable tree

PATCH [email protected] 1 participant 2 messages Oct 20, 2016

Subsystems (2)
lore
Share & tools
lore

[email protected]

author maintainer
#0 lore raw

The patch below does not apply to the 4.4-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.

thanks,

greg k-h

------------------ original commit in Linus's tree ------------------

Quoted 1 line

From 7703773ef1d85b40433902a8da20167331597e4a Mon Sep 17 00:00:00 2001

From: Nicolas Iooss <[email protected]>
Date: Tue, 23 Aug 2016 11:37:17 +0200
Subject: [PATCH] brcmfmac: fix pmksa->bssid usage

The struct cfg80211_pmksa defines its bssid field as:

    const u8 *bssid;

contrary to struct brcmf_pmksa, which uses:

    u8 bssid[ETH_ALEN];

Therefore in brcmf_cfg80211_del_pmksa(), &pmksa->bssid takes the address of this field (of type u8**), not the one of its content (which would be u8*). Remove the & operator to make brcmf_dbg("%pM") and memcmp() behave as expected.

This bug have been found using a custom static checker (which checks the usage of %p... attributes at build time). It has been introduced in commit 6c404f34f2bd ("brcmfmac: Cleanup pmksa cache handling code"), which replaced pmksa->bssid by &pmksa->bssid while refactoring the code, without modifying struct cfg80211_pmksa definition.

Replace &pmk[i].bssid with pmk[i].bssid too to make the code clearer, this change does not affect the semantic.

Fixes 6c404f34f2bd ("brcmfmac: Cleanup pmksa cache handling code")
drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c +2 -2
index 2628d5e12c64..201a98016142 100644
@@ -3884,11 +3884,11 @@ brcmf_cfg80211_del_pmksa(struct wiphy *wiphy, struct net_device *ndev,
 	if (!check_vif_up(ifp->vif))
 		return -EIO;
 
-	brcmf_dbg(CONN, "del_pmksa - PMK bssid = %pM\n", &pmksa->bssid);
+	brcmf_dbg(CONN, "del_pmksa - PMK bssid = %pM\n", pmksa->bssid);
 
 	npmk = le32_to_cpu(cfg->pmk_list.npmk);
 	for (i = 0; i < npmk; i++)
-		if (!memcmp(&pmksa->bssid, &pmk[i].bssid, ETH_ALEN))
+		if (!memcmp(pmksa->bssid, pmk[i].bssid, ETH_ALEN))
 			break;
 
 	if ((npmk > 0) && (i < npmk)) {
author maintainer
#1 lore raw
Quoted 36 lines · On Thu, Oct 20, 2016 at 04:16:35PM +0200, [email protected] wrote:

The patch below does not apply to the 4.4-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.

thanks,

greg k-h

------------------ original commit in Linus's tree ------------------

Quoted 1 line

From 7703773ef1d85b40433902a8da20167331597e4a Mon Sep 17 00:00:00 2001

From: Nicolas Iooss <[email protected]>
Date: Tue, 23 Aug 2016 11:37:17 +0200
Subject: [PATCH] brcmfmac: fix pmksa->bssid usage

The struct cfg80211_pmksa defines its bssid field as:

    const u8 *bssid;

contrary to struct brcmf_pmksa, which uses:

    u8 bssid[ETH_ALEN];

Therefore in brcmf_cfg80211_del_pmksa(), &pmksa->bssid takes the address of this field (of type u8**), not the one of its content (which would be u8*). Remove the & operator to make brcmf_dbg("%pM") and memcmp() behave as expected.

This bug have been found using a custom static checker (which checks the usage of %p... attributes at build time). It has been introduced in commit 6c404f34f2bd ("brcmfmac: Cleanup pmksa cache handling code"), which replaced pmksa->bssid by &pmksa->bssid while refactoring the code, without modifying struct cfg80211_pmksa definition.

Quoted 7 lines

Replace &pmk[i].bssid with pmk[i].bssid too to make the code clearer, this change does not affect the semantic.

Fixes 6c404f34f2bd ("brcmfmac: Cleanup pmksa cache handling code")

Nevermind, this wasn't for 4.4, sorry for the noise...