2023-05-15 19:25:56

by Christophe JAILLET

[permalink] [raw]
Subject: [PATCH] cassini: Fix a memory leak in the error handling path of cas_init_one()

cas_saturn_firmware_init() allocates some memory using vmalloc(). This
memory is freed in the .remove() function but not it the error handling
path of the probe.

Add the missing vfree() to avoid a memory leak, should an error occur.

Fixes: fcaa40669cd7 ("cassini: use request_firmware")
Signed-off-by: Christophe JAILLET <[email protected]>
---
drivers/net/ethernet/sun/cassini.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/drivers/net/ethernet/sun/cassini.c b/drivers/net/ethernet/sun/cassini.c
index 2d52f54ebb45..b317b9486455 100644
--- a/drivers/net/ethernet/sun/cassini.c
+++ b/drivers/net/ethernet/sun/cassini.c
@@ -5073,6 +5073,8 @@ static int cas_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
cas_shutdown(cp);
mutex_unlock(&cp->pm_mutex);

+ vfree(cp->fw_data);
+
pci_iounmap(pdev, cp->regs);


--
2.34.1



2023-05-16 07:54:04

by Pavan Chebbi

[permalink] [raw]
Subject: Re: [PATCH] cassini: Fix a memory leak in the error handling path of cas_init_one()

On Tue, May 16, 2023 at 12:39 AM Christophe JAILLET
<[email protected]> wrote:
>
> cas_saturn_firmware_init() allocates some memory using vmalloc(). This
> memory is freed in the .remove() function but not it the error handling
> path of the probe.
>
> Add the missing vfree() to avoid a memory leak, should an error occur.
>
> Fixes: fcaa40669cd7 ("cassini: use request_firmware")
> Signed-off-by: Christophe JAILLET <[email protected]>
> ---
> drivers/net/ethernet/sun/cassini.c | 2 ++
> 1 file changed, 2 insertions(+)
>

Looks good to me, though patch could have "net" in the subject.
Reviewed-by: Pavan Chebbi <[email protected]>


> diff --git a/drivers/net/ethernet/sun/cassini.c b/drivers/net/ethernet/sun/cassini.c
> index 2d52f54ebb45..b317b9486455 100644
> --- a/drivers/net/ethernet/sun/cassini.c
> +++ b/drivers/net/ethernet/sun/cassini.c
> @@ -5073,6 +5073,8 @@ static int cas_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
> cas_shutdown(cp);
> mutex_unlock(&cp->pm_mutex);
>
> + vfree(cp->fw_data);
> +
> pci_iounmap(pdev, cp->regs);
>
>
> --
> 2.34.1
>
>


Attachments:
smime.p7s (4.11 kB)
S/MIME Cryptographic Signature

2023-05-16 10:54:12

by Simon Horman

[permalink] [raw]
Subject: Re: [PATCH] cassini: Fix a memory leak in the error handling path of cas_init_one()

On Mon, May 15, 2023 at 09:09:11PM +0200, Christophe JAILLET wrote:
> cas_saturn_firmware_init() allocates some memory using vmalloc(). This
> memory is freed in the .remove() function but not it the error handling
> path of the probe.
>
> Add the missing vfree() to avoid a memory leak, should an error occur.
>
> Fixes: fcaa40669cd7 ("cassini: use request_firmware")
> Signed-off-by: Christophe JAILLET <[email protected]>

Reviewed-by: Simon Horman <[email protected]>


2023-05-17 08:27:52

by patchwork-bot+netdevbpf

[permalink] [raw]
Subject: Re: [PATCH] cassini: Fix a memory leak in the error handling path of cas_init_one()

Hello:

This patch was applied to netdev/net.git (main)
by David S. Miller <[email protected]>:

On Mon, 15 May 2023 21:09:11 +0200 you wrote:
> cas_saturn_firmware_init() allocates some memory using vmalloc(). This
> memory is freed in the .remove() function but not it the error handling
> path of the probe.
>
> Add the missing vfree() to avoid a memory leak, should an error occur.
>
> Fixes: fcaa40669cd7 ("cassini: use request_firmware")
> Signed-off-by: Christophe JAILLET <[email protected]>
>
> [...]

Here is the summary with links:
- cassini: Fix a memory leak in the error handling path of cas_init_one()
https://git.kernel.org/netdev/net/c/412cd77a2c24

You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html