| From 2d39d7ae31a7659c297c71ddf06a48d169c7519d Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Mon, 22 Jun 2020 15:21:12 +0200 |
| Subject: rtlwifi: rtl8192cu: Prevent leaking urb |
| |
| From: Reto Schneider <code@reto-schneider.ch> |
| |
| [ Upstream commit 03128643eb5453a798db5770952c73dc64fcaf00 ] |
| |
| If usb_submit_urb fails the allocated urb should be unanchored and |
| released. |
| |
| Signed-off-by: Reto Schneider <code@reto-schneider.ch> |
| Signed-off-by: Kalle Valo <kvalo@codeaurora.org> |
| Link: https://lore.kernel.org/r/20200622132113.14508-3-code@reto-schneider.ch |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/net/wireless/realtek/rtlwifi/usb.c | 5 ++++- |
| 1 file changed, 4 insertions(+), 1 deletion(-) |
| |
| diff --git a/drivers/net/wireless/realtek/rtlwifi/usb.c b/drivers/net/wireless/realtek/rtlwifi/usb.c |
| index 93b22a5b6878e..e524573aa8a09 100644 |
| --- a/drivers/net/wireless/realtek/rtlwifi/usb.c |
| +++ b/drivers/net/wireless/realtek/rtlwifi/usb.c |
| @@ -752,8 +752,11 @@ static int _rtl_usb_receive(struct ieee80211_hw *hw) |
| |
| usb_anchor_urb(urb, &rtlusb->rx_submitted); |
| err = usb_submit_urb(urb, GFP_KERNEL); |
| - if (err) |
| + if (err) { |
| + usb_unanchor_urb(urb); |
| + usb_free_urb(urb); |
| goto err_out; |
| + } |
| usb_free_urb(urb); |
| } |
| return 0; |
| -- |
| 2.25.1 |
| |