Hi Inaky/All,
i2400mu_rxd calls i2400m_rx with the received SKB. i2400m_rx does not free the
SKB on error; i2400mu_rxd would still own the SKB. i2400mu_rxd does not free
the SKB if i2400m_rx returns an error; the SKB is leaked. Is this analysis
correct?
I believe the following would prevent the leak. If everyone agrees, I'll
submit a formal patch.
Regards,
...doug
diff --git a/drivers/net/wimax/i2400m/usb-rx.c b/drivers/net/wimax/i2400m/usb-rx
index a26483a..c84e671 100644
--- a/drivers/net/wimax/i2400m/usb-rx.c
+++ b/drivers/net/wimax/i2400m/usb-rx.c
@@ -383,6 +383,8 @@ int i2400mu_rxd(void *_i2400mu)
i2400mu->rx_size_cnt++;
i2400mu->rx_size_acc += rx_skb->len;
result = i2400m_rx(i2400m, rx_skb);
+ if (result)
+ kfree_skb(rx_skb);
if (result == -EIO
&& edc_inc(&i2400mu->urb_edc,
EDC_MAX_ERRORS, EDC_ERROR_TIMEFRAME)) {
_______________________________________________
wimax mailing list
[email protected]
http://lists.linuxwimax.org/listinfo/wimax