2010-05-14 14:51:29

by Dan Carpenter

[permalink] [raw]
Subject: [patch -next 1/2] ath9k_htc: dereferencing before check in hif_usb_tx_cb()

After c11d8f89d3b7: "ath9k_htc: Simplify TX URB management" we no longer
assume that tx_buf is a non-null pointer.

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..ac82911 100644
--- a/drivers/net/wireless/ath/ath9k/hif_usb.c
+++ b/drivers/net/wireless/ath/ath9k/hif_usb.c
@@ -107,12 +107,14 @@ static inline void ath9k_skb_queue_purge(struct hif_device_usb *hif_dev,
static void hif_usb_tx_cb(struct urb *urb)
{
struct tx_buf *tx_buf = (struct tx_buf *) urb->context;
- struct hif_device_usb *hif_dev = tx_buf->hif_dev;
+ struct hif_device_usb *hif_dev;
struct sk_buff *skb;

- if (!hif_dev || !tx_buf)
+ if (!tx_buf || !tx_buf->hif_dev)
return;

+ hif_dev = tx_buf->hif_dev;
+
switch (urb->status) {
case 0:
break;


2010-05-18 06:53:55

by Sujith

[permalink] [raw]
Subject: [patch -next 1/2] ath9k_htc: dereferencing before check in hif_usb_tx_cb()

Dan Carpenter wrote:
> After c11d8f89d3b7: "ath9k_htc: Simplify TX URB management" we no longer
> assume that tx_buf is a non-null pointer.
>
> 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..ac82911 100644
> --- a/drivers/net/wireless/ath/ath9k/hif_usb.c
> +++ b/drivers/net/wireless/ath/ath9k/hif_usb.c
> @@ -107,12 +107,14 @@ static inline void ath9k_skb_queue_purge(struct hif_device_usb *hif_dev,
> static void hif_usb_tx_cb(struct urb *urb)
> {
> struct tx_buf *tx_buf = (struct tx_buf *) urb->context;
> - struct hif_device_usb *hif_dev = tx_buf->hif_dev;
> + struct hif_device_usb *hif_dev;
> struct sk_buff *skb;
>
> - if (!hif_dev || !tx_buf)
> + if (!tx_buf || !tx_buf->hif_dev)
> return;
>
> + hif_dev = tx_buf->hif_dev;
> +
> switch (urb->status) {
> case 0:
> break;