diff options
| author | Dan Carpenter <error27@gmail.com> | 2009-12-28 06:54:55 +0000 | 
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2010-01-03 21:42:50 -0800 | 
| commit | f65d1f082c8fb1bfae3f2cb51ec270da9b6366cf (patch) | |
| tree | 724e6ecc523064138a3e8037b826852a848ca528 | |
| parent | c064efca9211d12bb9e6de8718fc39884eb883f2 (diff) | |
| download | olio-linux-3.10-f65d1f082c8fb1bfae3f2cb51ec270da9b6366cf.tar.xz olio-linux-3.10-f65d1f082c8fb1bfae3f2cb51ec270da9b6366cf.zip  | |
hamradio: avoid null deref v3
This should address the problems in version 1 (lazy) and version 2 (ugly).
Bump the stats on orig_dev not on the newly assigned NULL dev variable.
Signed-off-by: Dan Carpenter <error27@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
| -rw-r--r-- | drivers/net/hamradio/bpqether.c | 4 | 
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/net/hamradio/bpqether.c b/drivers/net/hamradio/bpqether.c index ae5f11c8fc1..bdadf3e23c9 100644 --- a/drivers/net/hamradio/bpqether.c +++ b/drivers/net/hamradio/bpqether.c @@ -248,6 +248,7 @@ static netdev_tx_t bpq_xmit(struct sk_buff *skb, struct net_device *dev)  {  	unsigned char *ptr;  	struct bpqdev *bpq; +	struct net_device *orig_dev;  	int size;  	/* @@ -282,8 +283,9 @@ static netdev_tx_t bpq_xmit(struct sk_buff *skb, struct net_device *dev)  	bpq = netdev_priv(dev); +	orig_dev = dev;  	if ((dev = bpq_get_ether_dev(dev)) == NULL) { -		dev->stats.tx_dropped++; +		orig_dev->stats.tx_dropped++;  		kfree_skb(skb);  		return NETDEV_TX_OK;  	}  |