2021-04-23 18:33:21

by Ajay Singh

[permalink] [raw]
Subject: [PATCH 02/12] wilc1000: fix possible memory leak in cfg_scan_result()

From: Ajay Singh <[email protected]>

Free 'cg80211_bss' reference when 'bss' handler is valid.
'if' condition is incorrect because it calls 'cfg80211_put_bss' when bss
is NULL(i.e 'if (!bss) is used instead of 'if (bss)')
Remove 'if' condition because 'cfg80211_put_bss' API already takes care
of NULL check.

Fixes: 6cd4fa5ab691 ("staging: wilc1000: make use of cfg80211_inform_bss_frame()")
Signed-off-by: Ajay Singh <[email protected]>
---
drivers/net/wireless/microchip/wilc1000/cfg80211.c | 3 +--
1 file changed, 1 insertion(+), 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);

--
2.24.0