2010-05-14 14:52:56

by Dan Carpenter

[permalink] [raw]
Subject: [patch -next 2/2] ath9k_htc: rare leak in ath9k_hif_usb_alloc_tx_urbs()

This is obviously a small picky thing. The original error handling code
doesn't free the most recent allocations which haven't been added to the
hif_dev->tx.tx_buf list yet.

Signed-off-by: Dan Carpenter <[email protected]>

diff --git a/drivers/net/wireless/ath/ath9k/hif_usb.c b/drivers/net/wireless/ath/ath9k/hif_usb.c
index 46dc41a..77b3591 100644
--- a/drivers/net/wireless/ath/ath9k/hif_usb.c
+++ b/drivers/net/wireless/ath/ath9k/hif_usb.c
@@ -607,6 +609,10 @@ static int ath9k_hif_usb_alloc_tx_urbs(struct hif_device_usb *hif_dev)

return 0;
err:
+ if (tx_buf) {
+ kfree(tx_buf->buf);
+ kfree(tx_buf);
+ }
ath9k_hif_usb_dealloc_tx_urbs(hif_dev);
return -ENOMEM;
}


2010-05-18 06:56:12

by Sujith

[permalink] [raw]
Subject: [patch -next 2/2] ath9k_htc: rare leak in ath9k_hif_usb_alloc_tx_urbs()

Dan Carpenter wrote:
> This is obviously a small picky thing. The original error handling code
> doesn't free the most recent allocations which haven't been added to the
> hif_dev->tx.tx_buf list yet.
>
> Signed-off-by: Dan Carpenter <[email protected]>

Thanks.

Acked-by: Sujith <[email protected]>

> diff --git a/drivers/net/wireless/ath/ath9k/hif_usb.c b/drivers/net/wireless/ath/ath9k/hif_usb.c
> index 46dc41a..77b3591 100644
> --- a/drivers/net/wireless/ath/ath9k/hif_usb.c
> +++ b/drivers/net/wireless/ath/ath9k/hif_usb.c
> @@ -607,6 +609,10 @@ static int ath9k_hif_usb_alloc_tx_urbs(struct hif_device_usb *hif_dev)
>
> return 0;
> err:
> + if (tx_buf) {
> + kfree(tx_buf->buf);
> + kfree(tx_buf);
> + }
> ath9k_hif_usb_dealloc_tx_urbs(hif_dev);
> return -ENOMEM;
> }