2015-12-07 00:08:30

by Peter Wu

[permalink] [raw]
Subject: [PATCH v2] rtlwifi: fix memory leak for USB device

Free skb for received frames with a wrong checksum. This can happen
pretty rapidly, exhausting all memory.

This fixes a memleak (detected with kmemleak). Originally found while
using monitor mode, but it also appears during managed mode (once the
link is up).

Cc: [email protected]
Signed-off-by: Peter Wu <[email protected]>
---
v2: updated commit message based on Larry's feedback
v1: https://lkml.kernel.org/r/[email protected]

Tested with v4.3, rebased on v4.4-rc3 (changed paths). The bug goes back
to its introduction in the v2.6.x kernel.
---
drivers/net/wireless/realtek/rtlwifi/usb.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/drivers/net/wireless/realtek/rtlwifi/usb.c b/drivers/net/wireless/realtek/rtlwifi/usb.c
index 2721cf8..aac1ed3 100644
--- a/drivers/net/wireless/realtek/rtlwifi/usb.c
+++ b/drivers/net/wireless/realtek/rtlwifi/usb.c
@@ -531,6 +531,8 @@ static void _rtl_usb_rx_process_noagg(struct ieee80211_hw *hw,
ieee80211_rx(hw, skb);
else
dev_kfree_skb_any(skb);
+ } else {
+ dev_kfree_skb_any(skb);
}
}

--
2.6.3


2015-12-07 02:14:19

by Larry Finger

[permalink] [raw]
Subject: Re: [PATCH v2] rtlwifi: fix memory leak for USB device

On 12/06/2015 06:07 PM, Peter Wu wrote:
> Free skb for received frames with a wrong checksum. This can happen
> pretty rapidly, exhausting all memory.
>
> This fixes a memleak (detected with kmemleak). Originally found while
> using monitor mode, but it also appears during managed mode (once the
> link is up).
>
> Cc: [email protected]
> Signed-off-by: Peter Wu <[email protected]>
> ---
> v2: updated commit message based on Larry's feedback
> v1: https://lkml.kernel.org/r/[email protected]
>
> Tested with v4.3, rebased on v4.4-rc3 (changed paths). The bug goes back
> to its introduction in the v2.6.x kernel.
> ---
> drivers/net/wireless/realtek/rtlwifi/usb.c | 2 ++
> 1 file changed, 2 insertions(+)

ACKed-by: Larry Finger <[email protected]>

Thanks,

Larry

>
> diff --git a/drivers/net/wireless/realtek/rtlwifi/usb.c b/drivers/net/wireless/realtek/rtlwifi/usb.c
> index 2721cf8..aac1ed3 100644
> --- a/drivers/net/wireless/realtek/rtlwifi/usb.c
> +++ b/drivers/net/wireless/realtek/rtlwifi/usb.c
> @@ -531,6 +531,8 @@ static void _rtl_usb_rx_process_noagg(struct ieee80211_hw *hw,
> ieee80211_rx(hw, skb);
> else
> dev_kfree_skb_any(skb);
> + } else {
> + dev_kfree_skb_any(skb);
> }
> }
>
>

2015-12-11 11:49:17

by Kalle Valo

[permalink] [raw]
Subject: Re: [v2] rtlwifi: fix memory leak for USB device


> Free skb for received frames with a wrong checksum. This can happen
> pretty rapidly, exhausting all memory.
>
> This fixes a memleak (detected with kmemleak). Originally found while
> using monitor mode, but it also appears during managed mode (once the
> link is up).
>
> Cc: [email protected]
> Signed-off-by: Peter Wu <[email protected]>
> ACKed-by: Larry Finger <[email protected]>

Thanks, applied to wireless-drivers-next.git.

Kalle Valo