mac80211: backport brcmfmac changes from 2016-09-26
[openwrt/staging/chunkeey.git] / package / kernel / mac80211 / patches / 319-0029-brcmfmac-fix-memory-leak-in-brcmf_fill_bss_param.patch
1 From 23e9c128adb2038c27a424a5f91136e7fa3e0dc6 Mon Sep 17 00:00:00 2001
2 From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
3 Date: Wed, 21 Sep 2016 08:23:24 +0200
4 Subject: [PATCH] brcmfmac: fix memory leak in brcmf_fill_bss_param
5 MIME-Version: 1.0
6 Content-Type: text/plain; charset=UTF-8
7 Content-Transfer-Encoding: 8bit
8
9 This function is called from get_station callback which means that every
10 time user space was getting/dumping station(s) we were leaking 2 KiB.
11
12 Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
13 Fixes: 1f0dc59a6de ("brcmfmac: rework .get_station() callback")
14 Cc: stable@vger.kernel.org # 4.2+
15 Acked-by: Arend van Spriel <arend.vanspriel@broadcom.com>
16 Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
17 ---
18 drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c | 5 ++++-
19 1 file changed, 4 insertions(+), 1 deletion(-)
20
21 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
22 +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
23 @@ -2523,7 +2523,7 @@ static void brcmf_fill_bss_param(struct
24 WL_BSS_INFO_MAX);
25 if (err) {
26 brcmf_err("Failed to get bss info (%d)\n", err);
27 - return;
28 + goto out_kfree;
29 }
30 si->filled |= BIT(NL80211_STA_INFO_BSS_PARAM);
31 si->bss_param.beacon_interval = le16_to_cpu(buf->bss_le.beacon_period);
32 @@ -2535,6 +2535,9 @@ static void brcmf_fill_bss_param(struct
33 si->bss_param.flags |= BSS_PARAM_FLAGS_SHORT_PREAMBLE;
34 if (capability & WLAN_CAPABILITY_SHORT_SLOT_TIME)
35 si->bss_param.flags |= BSS_PARAM_FLAGS_SHORT_SLOT_TIME;
36 +
37 +out_kfree:
38 + kfree(buf);
39 }
40
41 static s32