On 11/30/21 06:40, Yang Yingliang wrote:The error path of rtllib_networks_allocate() won't leak the dev.
Add the missing free_netdev() before return from alloc_rtllib()
in the error handling case.
Signed-off-by: Yang Yingliang <yangyingliang@xxxxxxxxxx>
---
drivers/staging/rtl8192e/rtllib_module.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/staging/rtl8192e/rtllib_module.c b/drivers/staging/rtl8192e/rtllib_module.c
index 64d9feee1f39..18d898714c5c 100644
--- a/drivers/staging/rtl8192e/rtllib_module.c
+++ b/drivers/staging/rtl8192e/rtllib_module.c
@@ -125,7 +125,7 @@ struct net_device *alloc_rtllib(int sizeof_priv)
ieee->pHTInfo = kzalloc(sizeof(struct rt_hi_throughput), GFP_KERNEL);
if (!ieee->pHTInfo)
- return NULL;
+ goto failed;
HTUpdateDefaultSetting(ieee);
HTInitializeHTInfo(ieee);
Good catch!
There are 2 more possible leaks, tho. rtllib_networks_allocate() and rtllib_softmac_init() should be unwinded too.
I will send a v2 to fix this.
For some odd reason rtllib_softmac_init() does not return an error in case of allocation failure, but it should be fixed. I think, it worth to fix whole error handling in one patch
With regards,
Pavel Skripkin
.