Re: [PATCH] brcmfmac: fix memory leak in brcmf_fill_bss_param

From: Arend Van Spriel
Date: Fri Sep 23 2016 - 05:15:42 EST


On 21-9-2016 8:23, RafaÅ MiÅecki wrote:
> From: RafaÅ MiÅecki <rafal@xxxxxxxxxx>
>
> This function is called from get_station callback which means that every
> time user space was getting/dumping station(s) we were leaking 2 KiB.
>

Acked-by: Arend van Spriel <arend.vanspriel@xxxxxxxxxxxx>
> Signed-off-by: RafaÅ MiÅecki <rafal@xxxxxxxxxx>
> Fixes: 1f0dc59a6de ("brcmfmac: rework .get_station() callback")
> Cc: stable@xxxxxxxxxxxxxxx # 4.2+
> ---
> Kalle, ideally this should go as 4.8 fix, but I'm aware it's quite late.
> If you are not planning to send another pull request, just get it for
> the next release and let's let stable guys backport it.
> ---
> drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
> index b8aec5e5..62a7675 100644
> --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
> +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
> @@ -2533,7 +2533,7 @@ static void brcmf_fill_bss_param(struct brcmf_if *ifp, struct station_info *si)
> WL_BSS_INFO_MAX);
> if (err) {
> brcmf_err("Failed to get bss info (%d)\n", err);
> - return;
> + goto out_kfree;
> }
> si->filled |= BIT(NL80211_STA_INFO_BSS_PARAM);
> si->bss_param.beacon_interval = le16_to_cpu(buf->bss_le.beacon_period);
> @@ -2545,6 +2545,9 @@ static void brcmf_fill_bss_param(struct brcmf_if *ifp, struct station_info *si)
> si->bss_param.flags |= BSS_PARAM_FLAGS_SHORT_PREAMBLE;
> if (capability & WLAN_CAPABILITY_SHORT_SLOT_TIME)
> si->bss_param.flags |= BSS_PARAM_FLAGS_SHORT_SLOT_TIME;
> +
> +out_kfree:
> + kfree(buf);
> }
>
> static s32
>