[PATCH] rtlwifi: Don't leak on error in _rtl_usb_receive()

Subsystems: networking drivers (wireless), the rest

STALE4978d

2 messages, 2 authors, 2012-12-26 · open the first message on its own page

[PATCH] rtlwifi: Don't leak on error in _rtl_usb_receive()

From: Jesper Juhl <hidden>
Date: 2012-12-26 20:51:16

We fail to release 'urb' if '_rtl_prep_rx_urb()' fails in
_rtl_usb_receive().
This patch should take care of the leak.

Signed-off-by: Jesper Juhl <redacted>
---
 drivers/net/wireless/rtlwifi/usb.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

 note: compile tested only.
diff --git a/drivers/net/wireless/rtlwifi/usb.c b/drivers/net/wireless/rtlwifi/usb.c
index 29f0969..75c29e6 100644
--- a/drivers/net/wireless/rtlwifi/usb.c
+++ b/drivers/net/wireless/rtlwifi/usb.c
@@ -640,6 +640,7 @@ static int _rtl_usb_receive(struct ieee80211_hw *hw)
 			RT_TRACE(rtlpriv, COMP_USB, DBG_EMERG,
 				 "Failed to prep_rx_urb!!\n");
 			err = PTR_ERR(skb);
+			usb_free_urb(urb);
 			goto err_out;
 		}
 
-- 
1.7.1


-- 
Jesper Juhl <jj@chaosbits.net>       http://www.chaosbits.net/
Don't top-post http://www.catb.org/jargon/html/T/top-post.html
Plain text mails only, please.

Re: [PATCH] rtlwifi: Don't leak on error in _rtl_usb_receive()

From: Larry Finger <hidden>
Date: 2012-12-26 21:15:26

On 12/26/2012 02:51 PM, Jesper Juhl wrote:
We fail to release 'urb' if '_rtl_prep_rx_urb()' fails in
_rtl_usb_receive().
This patch should take care of the leak.

Signed-off-by: Jesper Juhl <redacted>
---
  drivers/net/wireless/rtlwifi/usb.c |    1 +
  1 files changed, 1 insertions(+), 0 deletions(-)

  note: compile tested only.
This looks correct to me. I have never seen that RT_TRACE() fire, thus such an 
error must be uncommon, at least on my system.

Acked-by: Larry Finger <redacted>

Thanks,

Larry
quoted hunk
diff --git a/drivers/net/wireless/rtlwifi/usb.c b/drivers/net/wireless/rtlwifi/usb.c
index 29f0969..75c29e6 100644
--- a/drivers/net/wireless/rtlwifi/usb.c
+++ b/drivers/net/wireless/rtlwifi/usb.c
@@ -640,6 +640,7 @@ static int _rtl_usb_receive(struct ieee80211_hw *hw)
  			RT_TRACE(rtlpriv, COMP_USB, DBG_EMERG,
  				 "Failed to prep_rx_urb!!\n");
  			err = PTR_ERR(skb);
+			usb_free_urb(urb);
  			goto err_out;
  		}
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help