2016-01-11 03:38:10

by Jia-Ju Bai

[permalink] [raw]
Subject: [PATCH] b43: Fix a memory leak in b43_bus_dev_ssb_init

The memory allocated by kzalloc in b43_bus_dev_ssb_init is not freed.
This patch fixes the bug by adding kfree in b43_ssb_remove.

Signed-off-by: Jia-Ju Bai <[email protected]>
---
drivers/net/wireless/b43/main.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/net/wireless/b43/main.c b/drivers/net/wireless/b43/main.c
index ec013fb..6d251a0 100644
--- a/drivers/net/wireless/b43/main.c
+++ b/drivers/net/wireless/b43/main.c
@@ -5798,6 +5798,7 @@ static void b43_ssb_remove(struct ssb_device *sdev)

b43_leds_unregister(wl);
b43_wireless_exit(dev, wl);
+ kfree(dev);
}

static struct ssb_driver b43_ssb_driver = {
--
1.7.9.5




2016-01-11 16:44:32

by Michael Büsch

[permalink] [raw]
Subject: Re: [PATCH] b43: Fix a memory leak in b43_bus_dev_ssb_init

On Mon, 11 Jan 2016 11:37:36 +0800
Jia-Ju Bai <[email protected]> wrote:

> The memory allocated by kzalloc in b43_bus_dev_ssb_init is not freed.
> This patch fixes the bug by adding kfree in b43_ssb_remove.
>
> Signed-off-by: Jia-Ju Bai <[email protected]>
> ---
> drivers/net/wireless/b43/main.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/net/wireless/b43/main.c b/drivers/net/wireless/b43/main.c
> index ec013fb..6d251a0 100644
> --- a/drivers/net/wireless/b43/main.c
> +++ b/drivers/net/wireless/b43/main.c
> @@ -5798,6 +5798,7 @@ static void b43_ssb_remove(struct ssb_device *sdev)
>
> b43_leds_unregister(wl);
> b43_wireless_exit(dev, wl);
> + kfree(dev);
> }
>
> static struct ssb_driver b43_ssb_driver = {



Nice catch.
The kfree is also missing in b43_bcma_remove().
And also in the error paths of b43_bcma_probe().

Can you please extend the patch to cover these, too?

--
Michael


Attachments:
(No filename) (819.00 B)
OpenPGP digital signature

2016-01-11 16:42:37

by Rafał Miłecki

[permalink] [raw]
Subject: Re: [PATCH] b43: Fix a memory leak in b43_bus_dev_ssb_init

On 11 January 2016 at 04:37, Jia-Ju Bai <[email protected]> wrote:
> The memory allocated by kzalloc in b43_bus_dev_ssb_init is not freed.
> This patch fixes the bug by adding kfree in b43_ssb_remove.

Nice. If you want somethig more to scratch your head, see
"Missing b43 firmware handling"
http://lists.infradead.org/pipermail/b43-dev/2014-June/003467.html

--
Rafał