Add call to ieee80211_networks_free() to avoid potential memory
leak if allocation of pHTInfo fails.

If the third allocation fails only the first successful allocation
is freed, not the second.

Signed-off-by: John Whitmore <johnfwhitm...@gmail.com>
---
 drivers/staging/rtl8192u/ieee80211/ieee80211_module.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/drivers/staging/rtl8192u/ieee80211/ieee80211_module.c 
b/drivers/staging/rtl8192u/ieee80211/ieee80211_module.c
index 90a097f2cd4e..aada077ced0f 100644
--- a/drivers/staging/rtl8192u/ieee80211/ieee80211_module.c
+++ b/drivers/staging/rtl8192u/ieee80211/ieee80211_module.c
@@ -159,6 +159,11 @@ struct net_device *alloc_ieee80211(int sizeof_priv)
        ieee->pHTInfo = kzalloc(sizeof(RT_HIGH_THROUGHPUT), GFP_KERNEL);
        if (ieee->pHTInfo == NULL) {
                IEEE80211_DEBUG(IEEE80211_DL_ERR, "can't alloc memory for 
HTInfo\n");
+
+               /* By this point in code ieee80211_networks_allocate() has been
+                * successfully called so the memory allocated should be freed
+                */
+               ieee80211_networks_free(ieee);
                goto failed;
        }
        HTUpdateDefaultSetting(ieee);
-- 
2.18.0

Reply via email to