Skip to content

Commit

Permalink
[PATCH] USB: Fix irda-usb use after use
Browse files Browse the repository at this point in the history
Don't read from free'd memory after calling netif_rx().  docopy is used as
a boolean (0 and 1) so unsigned int is sufficient.

Coverity bug #928

Signed-off-by: Eugene Teo <eugene.teo@eugeneteo.net>
Cc: "David S. Miller" <davem@davemloft.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
  • Loading branch information
Eugene Teo authored and Greg Kroah-Hartman committed Mar 20, 2006
1 parent 09abfa8 commit da81817
Showing 1 changed file with 3 additions and 2 deletions.
5 changes: 3 additions & 2 deletions drivers/net/irda/irda-usb.c
Original file line number Diff line number Diff line change
Expand Up @@ -740,7 +740,7 @@ static void irda_usb_receive(struct urb *urb, struct pt_regs *regs)
struct sk_buff *newskb;
struct sk_buff *dataskb;
struct urb *next_urb;
int docopy;
unsigned int len, docopy;

IRDA_DEBUG(2, "%s(), len=%d\n", __FUNCTION__, urb->actual_length);

Expand Down Expand Up @@ -851,10 +851,11 @@ static void irda_usb_receive(struct urb *urb, struct pt_regs *regs)
dataskb->dev = self->netdev;
dataskb->mac.raw = dataskb->data;
dataskb->protocol = htons(ETH_P_IRDA);
len = dataskb->len;
netif_rx(dataskb);

/* Keep stats up to date */
self->stats.rx_bytes += dataskb->len;
self->stats.rx_bytes += len;
self->stats.rx_packets++;
self->netdev->last_rx = jiffies;

Expand Down

0 comments on commit da81817

Please sign in to comment.