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
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
>
>
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]>
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