diff mbox

staging: r8188eu: Fix memory leak in firmware loading

Message ID 1420222628-4955-1-git-send-email-Larry.Finger@lwfinger.net
State Not Applicable, archived
Delegated to: David Miller
Headers show

Commit Message

Larry Finger Jan. 2, 2015, 6:17 p.m. UTC
The driver allocates memory to store the firmware image; however, that
memory is never released. The kmemleak facility was used to find this
error.

Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
---
 drivers/staging/rtl8188eu/hal/fw.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Larry Finger Jan. 3, 2015, 5:57 a.m. UTC | #1
On 01/02/2015 12:17 PM, Larry Finger wrote:
> The driver allocates memory to store the firmware image; however, that
> memory is never released. The kmemleak facility was used to find this
> error.
>
> Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
> ---
>   drivers/staging/rtl8188eu/hal/fw.c | 1 +
>   1 file changed, 1 insertion(+)
>
> diff --git a/drivers/staging/rtl8188eu/hal/fw.c b/drivers/staging/rtl8188eu/hal/fw.c
> index 3b28754..a5b7fc4 100644
> --- a/drivers/staging/rtl8188eu/hal/fw.c
> +++ b/drivers/staging/rtl8188eu/hal/fw.c
> @@ -231,6 +231,7 @@ int rtl88eu_download_fw(struct adapter *adapt)
>   	_rtl88e_enable_fw_download(adapt, false);
>
>   	err = _rtl88e_fw_free_to_go(adapt);
> +	kfree(pfwdata);
>
>   	return err;
>   }

Greg,

Please drop this patch. Unfortunately, further testing showed that the kfree() 
call is in the wrong place. I will send V2 shortly.

Thanks,

Larry


--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/staging/rtl8188eu/hal/fw.c b/drivers/staging/rtl8188eu/hal/fw.c
index 3b28754..a5b7fc4 100644
--- a/drivers/staging/rtl8188eu/hal/fw.c
+++ b/drivers/staging/rtl8188eu/hal/fw.c
@@ -231,6 +231,7 @@  int rtl88eu_download_fw(struct adapter *adapt)
 	_rtl88e_enable_fw_download(adapt, false);
 
 	err = _rtl88e_fw_free_to_go(adapt);
+	kfree(pfwdata);
 
 	return err;
 }