diff mbox series

can: softing_cs: fix memleak on registration failure

Message ID 20211222104843.6105-1-johan@kernel.org (mailing list archive)
State Awaiting Upstream
Delegated to: Netdev Maintainers
Headers show
Series can: softing_cs: fix memleak on registration failure | expand

Checks

Context Check Description
netdev/tree_selection success Series ignored based on subject

Commit Message

Johan Hovold Dec. 22, 2021, 10:48 a.m. UTC
In case device registration fails during probe, the driver state and the
embedded platform device structure needs to be freed using
platform_device_put() to properly free all resources (e.g. the device
name).

Fixes: 0a0b7a5f7a04 ("can: add driver for Softing card")
Cc: stable@vger.kernel.org      # 2.6.38
Signed-off-by: Johan Hovold <johan@kernel.org>
---
 drivers/net/can/softing/softing_cs.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Greg KH Dec. 22, 2021, 11:05 a.m. UTC | #1
On Wed, Dec 22, 2021 at 11:48:43AM +0100, Johan Hovold wrote:
> In case device registration fails during probe, the driver state and the
> embedded platform device structure needs to be freed using
> platform_device_put() to properly free all resources (e.g. the device
> name).
> 
> Fixes: 0a0b7a5f7a04 ("can: add driver for Softing card")
> Cc: stable@vger.kernel.org      # 2.6.38
> Signed-off-by: Johan Hovold <johan@kernel.org>
> ---
>  drivers/net/can/softing/softing_cs.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/net/can/softing/softing_cs.c b/drivers/net/can/softing/softing_cs.c
> index 2e93ee792373..e5c939b63fa6 100644
> --- a/drivers/net/can/softing/softing_cs.c
> +++ b/drivers/net/can/softing/softing_cs.c
> @@ -293,7 +293,7 @@ static int softingcs_probe(struct pcmcia_device *pcmcia)
>  	return 0;
>  
>  platform_failed:
> -	kfree(dev);
> +	platform_device_put(pdev);
>  mem_failed:
>  pcmcia_bad:
>  pcmcia_failed:
> -- 
> 2.32.0
> 

Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
diff mbox series

Patch

diff --git a/drivers/net/can/softing/softing_cs.c b/drivers/net/can/softing/softing_cs.c
index 2e93ee792373..e5c939b63fa6 100644
--- a/drivers/net/can/softing/softing_cs.c
+++ b/drivers/net/can/softing/softing_cs.c
@@ -293,7 +293,7 @@  static int softingcs_probe(struct pcmcia_device *pcmcia)
 	return 0;
 
 platform_failed:
-	kfree(dev);
+	platform_device_put(pdev);
 mem_failed:
 pcmcia_bad:
 pcmcia_failed: