diff mbox series

hostap: Fix memleak in prism2_config

Message ID 20210329085246.24586-1-dinghao.liu@zju.edu.cn
State Changes Requested
Delegated to: Kalle Valo
Headers show
Series hostap: Fix memleak in prism2_config | expand

Commit Message

Dinghao Liu March 29, 2021, 8:52 a.m. UTC
When prism2_hw_config() fails, we just return an error code
without any resource release, which may lead to memleak.

Signed-off-by: Dinghao Liu <dinghao.liu@zju.edu.cn>
---
 drivers/net/wireless/intersil/hostap/hostap_cs.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

Comments

Kalle Valo April 7, 2021, 11:53 a.m. UTC | #1
Dinghao Liu <dinghao.liu@zju.edu.cn> writes:

> When prism2_hw_config() fails, we just return an error code
> without any resource release, which may lead to memleak.
>
> Signed-off-by: Dinghao Liu <dinghao.liu@zju.edu.cn>
> ---
>  drivers/net/wireless/intersil/hostap/hostap_cs.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/net/wireless/intersil/hostap/hostap_cs.c b/drivers/net/wireless/intersil/hostap/hostap_cs.c
> index ec7db2badc40..7dc16ab50ad6 100644
> --- a/drivers/net/wireless/intersil/hostap/hostap_cs.c
> +++ b/drivers/net/wireless/intersil/hostap/hostap_cs.c
> @@ -536,10 +536,10 @@ static int prism2_config(struct pcmcia_device *link)
>  	sandisk_enable_wireless(dev);
>  
>  	ret = prism2_hw_config(dev, 1);
> -	if (!ret)
> -		ret = hostap_hw_ready(dev);
> +	if (ret)
> +		goto failed;
>  
> -	return ret;
> +	return hostap_hw_ready(dev);;

Two semicolons.

But I'm not sure about this, can someone provide a Reviewed-by tag?
Kalle Valo April 18, 2021, 6:14 a.m. UTC | #2
Dinghao Liu <dinghao.liu@zju.edu.cn> wrote:

> When prism2_hw_config() fails, we just return an error code
> without any resource release, which may lead to memleak.
> 
> Signed-off-by: Dinghao Liu <dinghao.liu@zju.edu.cn>

Nobody reviewed this, so dropping the patch.

Patch set to Changes Requested.
diff mbox series

Patch

diff --git a/drivers/net/wireless/intersil/hostap/hostap_cs.c b/drivers/net/wireless/intersil/hostap/hostap_cs.c
index ec7db2badc40..7dc16ab50ad6 100644
--- a/drivers/net/wireless/intersil/hostap/hostap_cs.c
+++ b/drivers/net/wireless/intersil/hostap/hostap_cs.c
@@ -536,10 +536,10 @@  static int prism2_config(struct pcmcia_device *link)
 	sandisk_enable_wireless(dev);
 
 	ret = prism2_hw_config(dev, 1);
-	if (!ret)
-		ret = hostap_hw_ready(dev);
+	if (ret)
+		goto failed;
 
-	return ret;
+	return hostap_hw_ready(dev);;
 
  failed:
 	kfree(hw_priv);