2023-03-09 02:19:54

by Dongliang Mu

[permalink] [raw]
Subject: [PATCH v2] wifi: rtw88: fix memory leak in rtw_usb_probe()

drivers/net/wireless/realtek/rtw88/usb.c:876 rtw_usb_probe()
warn: 'hw' from ieee80211_alloc_hw() not released on lines: 811

Fix this by modifying return to a goto statement.

Signed-off-by: Dongliang Mu <[email protected]>
---
v1->v2: modify the commit title
drivers/net/wireless/realtek/rtw88/usb.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/wireless/realtek/rtw88/usb.c b/drivers/net/wireless/realtek/rtw88/usb.c
index 2a8336b1847a..68e1b782d199 100644
--- a/drivers/net/wireless/realtek/rtw88/usb.c
+++ b/drivers/net/wireless/realtek/rtw88/usb.c
@@ -808,7 +808,7 @@ int rtw_usb_probe(struct usb_interface *intf, const struct usb_device_id *id)

ret = rtw_usb_alloc_rx_bufs(rtwusb);
if (ret)
- return ret;
+ goto err_release_hw;

ret = rtw_core_init(rtwdev);
if (ret)
--
2.39.2



2023-03-09 03:48:23

by Ping-Ke Shih

[permalink] [raw]
Subject: RE: [PATCH v2] wifi: rtw88: fix memory leak in rtw_usb_probe()



> -----Original Message-----
> From: Dongliang Mu <[email protected]>
> Sent: Thursday, March 9, 2023 10:17 AM
> To: Yan-Hsuan Chuang <[email protected]>; Kalle Valo <[email protected]>; David S. Miller
> <[email protected]>; Eric Dumazet <[email protected]>; Jakub Kicinski <[email protected]>; Paolo Abeni
> <[email protected]>
> Cc: Dongliang Mu <[email protected]>; [email protected]; [email protected];
> [email protected]
> Subject: [PATCH v2] wifi: rtw88: fix memory leak in rtw_usb_probe()
>
> drivers/net/wireless/realtek/rtw88/usb.c:876 rtw_usb_probe()
> warn: 'hw' from ieee80211_alloc_hw() not released on lines: 811

Can I know which tool can detect this? It would be good to mention the tool
in commit message.

>
> Fix this by modifying return to a goto statement.
>
> Signed-off-by: Dongliang Mu <[email protected]>
> ---
> v1->v2: modify the commit title
> drivers/net/wireless/realtek/rtw88/usb.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/net/wireless/realtek/rtw88/usb.c b/drivers/net/wireless/realtek/rtw88/usb.c
> index 2a8336b1847a..68e1b782d199 100644
> --- a/drivers/net/wireless/realtek/rtw88/usb.c
> +++ b/drivers/net/wireless/realtek/rtw88/usb.c
> @@ -808,7 +808,7 @@ int rtw_usb_probe(struct usb_interface *intf, const struct usb_device_id *id)
>
> ret = rtw_usb_alloc_rx_bufs(rtwusb);
> if (ret)
> - return ret;
> + goto err_release_hw;
>
> ret = rtw_core_init(rtwdev);
> if (ret)
> --
> 2.39.2


2023-03-09 03:53:52

by Dongliang Mu

[permalink] [raw]
Subject: Re: [PATCH v2] wifi: rtw88: fix memory leak in rtw_usb_probe()



> On Mar 9, 2023, at 11:47, Ping-Ke Shih <[email protected]> wrote:
>
>
>
>> -----Original Message-----
>> From: Dongliang Mu <[email protected]>
>> Sent: Thursday, March 9, 2023 10:17 AM
>> To: Yan-Hsuan Chuang <[email protected]>; Kalle Valo <[email protected]>; David S. Miller
>> <[email protected]>; Eric Dumazet <[email protected]>; Jakub Kicinski <[email protected]>; Paolo Abeni
>> <[email protected]>
>> Cc: Dongliang Mu <[email protected]>; [email protected]; [email protected];
>> [email protected]
>> Subject: [PATCH v2] wifi: rtw88: fix memory leak in rtw_usb_probe()
>>
>> drivers/net/wireless/realtek/rtw88/usb.c:876 rtw_usb_probe()
>> warn: 'hw' from ieee80211_alloc_hw() not released on lines: 811
>
> Can I know which tool can detect this? It would be good to mention the tool
> in commit message.
>

Oh, Smatch, I forget to mention it.

>>
>> Fix this by modifying return to a goto statement.
>>
>> Signed-off-by: Dongliang Mu <[email protected]>
>> ---
>> v1->v2: modify the commit title
>> drivers/net/wireless/realtek/rtw88/usb.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/net/wireless/realtek/rtw88/usb.c b/drivers/net/wireless/realtek/rtw88/usb.c
>> index 2a8336b1847a..68e1b782d199 100644
>> --- a/drivers/net/wireless/realtek/rtw88/usb.c
>> +++ b/drivers/net/wireless/realtek/rtw88/usb.c
>> @@ -808,7 +808,7 @@ int rtw_usb_probe(struct usb_interface *intf, const struct usb_device_id *id)
>>
>> ret = rtw_usb_alloc_rx_bufs(rtwusb);
>> if (ret)
>> - return ret;
>> + goto err_release_hw;
>>
>> ret = rtw_core_init(rtwdev);
>> if (ret)
>> --
>> 2.39.2


2023-03-09 03:56:27

by Ping-Ke Shih

[permalink] [raw]
Subject: RE: [PATCH v2] wifi: rtw88: fix memory leak in rtw_usb_probe()



> -----Original Message-----
> From: Dongliang Mu <[email protected]>
> Sent: Thursday, March 9, 2023 11:53 AM
> To: Ping-Ke Shih <[email protected]>
> Cc: Yan-Hsuan Chuang <[email protected]>; Kalle Valo <[email protected]>; David S. Miller
> <[email protected]>; Eric Dumazet <[email protected]>; Jakub Kicinski <[email protected]>; Paolo Abeni
> <[email protected]>; [email protected]; [email protected];
> [email protected]
> Subject: Re: [PATCH v2] wifi: rtw88: fix memory leak in rtw_usb_probe()
>
> > On Mar 9, 2023, at 11:47, Ping-Ke Shih <[email protected]> wrote:
> >
> >
> >
> >> -----Original Message-----
> >> From: Dongliang Mu <[email protected]>
> >> Sent: Thursday, March 9, 2023 10:17 AM
> >> To: Yan-Hsuan Chuang <[email protected]>; Kalle Valo <[email protected]>; David S. Miller
> >> <[email protected]>; Eric Dumazet <[email protected]>; Jakub Kicinski <[email protected]>; Paolo
> Abeni
> >> <[email protected]>
> >> Cc: Dongliang Mu <[email protected]>; [email protected]; [email protected];
> >> [email protected]
> >> Subject: [PATCH v2] wifi: rtw88: fix memory leak in rtw_usb_probe()
> >>
> >> drivers/net/wireless/realtek/rtw88/usb.c:876 rtw_usb_probe()
> >> warn: 'hw' from ieee80211_alloc_hw() not released on lines: 811
> >
> > Can I know which tool can detect this? It would be good to mention the tool
> > in commit message.
> >
>
> Oh, Smatch, I forget to mention it.

Thanks. It seems like my smatch is too old.

>
> >>
> >> Fix this by modifying return to a goto statement.
> >>
> >> Signed-off-by: Dongliang Mu <[email protected]>
> >> ---
> >> v1->v2: modify the commit title
> >> drivers/net/wireless/realtek/rtw88/usb.c | 2 +-
> >> 1 file changed, 1 insertion(+), 1 deletion(-)
> >>
> >> diff --git a/drivers/net/wireless/realtek/rtw88/usb.c b/drivers/net/wireless/realtek/rtw88/usb.c
> >> index 2a8336b1847a..68e1b782d199 100644
> >> --- a/drivers/net/wireless/realtek/rtw88/usb.c
> >> +++ b/drivers/net/wireless/realtek/rtw88/usb.c
> >> @@ -808,7 +808,7 @@ int rtw_usb_probe(struct usb_interface *intf, const struct usb_device_id *id)
> >>
> >> ret = rtw_usb_alloc_rx_bufs(rtwusb);
> >> if (ret)
> >> - return ret;
> >> + goto err_release_hw;
> >>
> >> ret = rtw_core_init(rtwdev);
> >> if (ret)
> >> --
> >> 2.39.2
>
>
> ------Please consider the environment before printing this e-mail.

2023-03-10 03:51:06

by Ping-Ke Shih

[permalink] [raw]
Subject: RE: [PATCH v2] wifi: rtw88: fix memory leak in rtw_usb_probe()



> -----Original Message-----
> From: Dongliang Mu <[email protected]>
> Sent: Thursday, March 9, 2023 10:17 AM
> To: Yan-Hsuan Chuang <[email protected]>; Kalle Valo <[email protected]>; David S. Miller
> <[email protected]>; Eric Dumazet <[email protected]>; Jakub Kicinski <[email protected]>; Paolo Abeni
> <[email protected]>
> Cc: Dongliang Mu <[email protected]>; [email protected]; [email protected];
> [email protected]
> Subject: [PATCH v2] wifi: rtw88: fix memory leak in rtw_usb_probe()
>
> drivers/net/wireless/realtek/rtw88/usb.c:876 rtw_usb_probe()
> warn: 'hw' from ieee80211_alloc_hw() not released on lines: 811
>
> Fix this by modifying return to a goto statement.
>
> Signed-off-by: Dongliang Mu <[email protected]>

Reviewed-by: Ping-Ke Shih <[email protected]>

> ---
> v1->v2: modify the commit title
> drivers/net/wireless/realtek/rtw88/usb.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/net/wireless/realtek/rtw88/usb.c b/drivers/net/wireless/realtek/rtw88/usb.c
> index 2a8336b1847a..68e1b782d199 100644
> --- a/drivers/net/wireless/realtek/rtw88/usb.c
> +++ b/drivers/net/wireless/realtek/rtw88/usb.c
> @@ -808,7 +808,7 @@ int rtw_usb_probe(struct usb_interface *intf, const struct usb_device_id *id)
>
> ret = rtw_usb_alloc_rx_bufs(rtwusb);
> if (ret)
> - return ret;
> + goto err_release_hw;
>
> ret = rtw_core_init(rtwdev);
> if (ret)
> --
> 2.39.2


2023-03-13 13:45:46

by Kalle Valo

[permalink] [raw]
Subject: Re: [PATCH v2] wifi: rtw88: fix memory leak in rtw_usb_probe()

Dongliang Mu <[email protected]> wrote:

> drivers/net/wireless/realtek/rtw88/usb.c:876 rtw_usb_probe()
> warn: 'hw' from ieee80211_alloc_hw() not released on lines: 811
>
> Fix this by modifying return to a goto statement.
>
> Signed-off-by: Dongliang Mu <[email protected]>
> Reviewed-by: Ping-Ke Shih <[email protected]>

Patch applied to wireless-next.git, thanks.

48181d285623 wifi: rtw88: fix memory leak in rtw_usb_probe()

--
https://patchwork.kernel.org/project/linux-wireless/patch/[email protected]/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches