diff options
author | Ajay Singh <ajay.kathat@microchip.com> | 2021-09-16 16:49:18 +0000 |
---|---|---|
committer | Kalle Valo <kvalo@codeaurora.org> | 2021-09-21 18:08:14 +0300 |
commit | 3c719fed0f3a5e95b1d164609ecc81c4191ade70 (patch) | |
tree | 2b16f1543e37e8c4e787c6825664f653775b7df0 /drivers/net/wireless/microchip | |
parent | c8e2036ee90bde32e2567b47464899a181da3d54 (diff) | |
download | lwn-3c719fed0f3a5e95b1d164609ecc81c4191ade70.tar.gz lwn-3c719fed0f3a5e95b1d164609ecc81c4191ade70.zip |
wilc1000: fix possible memory leak in cfg_scan_result()
When the BSS reference holds a valid reference, it is not freed. The 'if'
condition is wrong. Instead of the 'if (bss)' check, the 'if (!bss)' check
is used.
The issue is solved by removing the unnecessary 'if' check because
cfg80211_put_bss() already performs the NULL validation.
Fixes: 6cd4fa5ab691 ("staging: wilc1000: make use of cfg80211_inform_bss_frame()")
Signed-off-by: Ajay Singh <ajay.kathat@microchip.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Link: https://lore.kernel.org/r/20210916164902.74629-3-ajay.kathat@microchip.com
Diffstat (limited to 'drivers/net/wireless/microchip')
-rw-r--r-- | drivers/net/wireless/microchip/wilc1000/cfg80211.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/drivers/net/wireless/microchip/wilc1000/cfg80211.c b/drivers/net/wireless/microchip/wilc1000/cfg80211.c index 530a768547cc..36b87ed38092 100644 --- a/drivers/net/wireless/microchip/wilc1000/cfg80211.c +++ b/drivers/net/wireless/microchip/wilc1000/cfg80211.c @@ -129,8 +129,7 @@ static void cfg_scan_result(enum scan_event scan_event, info->frame_len, (s32)info->rssi * 100, GFP_KERNEL); - if (!bss) - cfg80211_put_bss(wiphy, bss); + cfg80211_put_bss(wiphy, bss); } else if (scan_event == SCAN_EVENT_DONE) { mutex_lock(&priv->scan_req_lock); |