2024-02-17 19:40:23

by Joe Perches

[permalink] [raw]
Subject: broadcom: brcmfmac, alloc without null test

There's a missing NULL alloc test here:

It doesn't appear obvious what a proper fix is.

diff -u -p ./drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c /tmp/nothing/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
--- ./drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
+++ /tmp/nothing/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
@@ -4308,7 +4308,6 @@ brcmf_pmksa_v3_op(struct brcmf_if *ifp,
int ret;

pmk_op = kzalloc(sizeof(*pmk_op), GFP_KERNEL);
- pmk_op->version = cpu_to_le16(BRCMF_PMKSA_VER_3);

if (!pmksa) {
/* Flush operation, operate on entire list */



2024-02-18 08:26:38

by Arend van Spriel

[permalink] [raw]
Subject: Re: broadcom: brcmfmac, alloc without null test

On 2/17/2024 8:40 PM, Joe Perches wrote:
> There's a missing NULL alloc test here:
>
> It doesn't appear obvious what a proper fix is.
>
> diff -u -p ./drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c /tmp/nothing/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
> --- ./drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
> +++ /tmp/nothing/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
> @@ -4308,7 +4308,6 @@ brcmf_pmksa_v3_op(struct brcmf_if *ifp,
> int ret;
>
> pmk_op = kzalloc(sizeof(*pmk_op), GFP_KERNEL);

Thanks, Joe

Looking at the callers I would say returning -ENOMEM here when pmk_op is
NULL should do the trick.

Regards,
Arend

> - pmk_op->version = cpu_to_le16(BRCMF_PMKSA_VER_3);
>
> if (!pmksa) {
> /* Flush operation, operate on entire list */
>


Attachments:
smime.p7s (4.12 kB)
S/MIME Cryptographic Signature