mirror of
https://github.com/torvalds/linux.git
synced 2026-09-25 09:41:03 +02:00
wifi: brcmfmac: cyw: pass PMKID to firmware if present
Zero out auth_status on initialization. Otherwise, garbage will
leak from the stack to the firmware (when ssid is less than 32 bytes
and/or when params->pmkid is set). Then, pass the params->pmkid to the
firmware (without it, the firmware caches a garbage PMKID on successful
authentication and denies a subsequent association request that includes
the PMKID).
Fixes: 66f909308a ("wifi: brcmfmac: cyw: support external SAE authentication in station mode")
Signed-off-by: Bogdan Nicolae <bogdan.nicolae@gmail.com>
Acked-by: Arend van Spriel <arend.vanspriel@broadcom.com>
Link: https://patch.msgid.link/20260807163418.487508-1-bogdan.nicolae@gmail.com
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
parent
fa00193eb9
commit
e2de8d5eb2
|
|
@ -198,7 +198,7 @@ brcmf_cyw_external_auth(struct wiphy *wiphy, struct net_device *dev,
|
|||
{
|
||||
struct brcmf_if *ifp;
|
||||
struct brcmf_pub *drvr;
|
||||
struct brcmf_auth_req_status_le auth_status;
|
||||
struct brcmf_auth_req_status_le auth_status = {};
|
||||
int ret = 0;
|
||||
|
||||
brcmf_dbg(TRACE, "Enter\n");
|
||||
|
|
@ -206,6 +206,9 @@ brcmf_cyw_external_auth(struct wiphy *wiphy, struct net_device *dev,
|
|||
ifp = netdev_priv(dev);
|
||||
drvr = ifp->drvr;
|
||||
if (params->status == WLAN_STATUS_SUCCESS) {
|
||||
if (params->pmkid)
|
||||
memcpy(auth_status.pmkid, params->pmkid,
|
||||
WLAN_PMKID_LEN);
|
||||
auth_status.flags = cpu_to_le16(BRCMF_EXTAUTH_SUCCESS);
|
||||
} else {
|
||||
bphy_err(drvr, "External authentication failed: status=%d\n",
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user