[PATCH wireless 1/2] wifi: brcmfmac: zero-pad SDIO write to 4-byte boundary
From: Tristan Madani
Date: Mon Nov 02 2026 - 07:34:25 EST
From: Tristan Madani <tristan@xxxxxxxxxxxxxxxxxxx>
brcmf_sdiod_skbuff_write() rounds skb->len up to the next 4-byte
boundary and passes the larger size to sdio_memcpy_toio(). The 1-3
extra bytes come from heap memory past skb->data, leaking stale kernel
data to the wireless device.
Zero-fill the padding before the SDIO write.
Fixes: 8f13c87ccc49 ("brcmfmac: Split brcmf_sdiod_buffrw function up.")
Cc: stable@xxxxxxxxxxxxxxx
Signed-off-by: Tristan Madani <tristan@xxxxxxxxxxxxxxxxxxx>
---
drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
index 71c2f99cdb711..c6dd4148a44ce 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
@@ -323,6 +323,9 @@ static int brcmf_sdiod_skbuff_write(struct brcmf_sdio_dev *sdiodev,
req_sz = skb->len + 3;
req_sz &= (uint)~3;
+ if (req_sz > skb->len)
+ memset(skb->data + skb->len, 0, req_sz - skb->len);
+
err = sdio_memcpy_toio(func, addr, ((u8 *)(skb->data)), req_sz);
if (err == -ENOMEDIUM)
--
2.47.3