aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/hamradio
diff options
context:
space:
mode:
authorPatrick McHardy <kaber@trash.net>2009-06-12 01:20:01 -0400
committerDavid S. Miller <davem@davemloft.net>2009-06-13 04:18:42 -0400
commit98ca4a46d27348476c9196ebc0a0c5297431d90f (patch)
tree6e3e590e2e10b3e0ec62a37c2a56f0704d202827 /drivers/net/hamradio
parentae71bafdd4ce29856addfede1ab7046f4e45775b (diff)
net: fix network drivers ndo_start_xmit() return values (part 6)
Fix up hamradio drivers that return an errno value to dev_queue_xmit(), causing it to print a warning an free the skb. - bpqether: skb is freed: use after free Compile tested only. Signed-off-by: Patrick McHardy <kaber@trash.net> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/hamradio')
-rw-r--r--drivers/net/hamradio/bpqether.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/net/hamradio/bpqether.c b/drivers/net/hamradio/bpqether.c
index d509b371a562..5105548ad50c 100644
--- a/drivers/net/hamradio/bpqether.c
+++ b/drivers/net/hamradio/bpqether.c
@@ -274,7 +274,7 @@ static int bpq_xmit(struct sk_buff *skb, struct net_device *dev)
274 if ((newskb = skb_realloc_headroom(skb, AX25_BPQ_HEADER_LEN)) == NULL) { 274 if ((newskb = skb_realloc_headroom(skb, AX25_BPQ_HEADER_LEN)) == NULL) {
275 printk(KERN_WARNING "bpqether: out of memory\n"); 275 printk(KERN_WARNING "bpqether: out of memory\n");
276 kfree_skb(skb); 276 kfree_skb(skb);
277 return -ENOMEM; 277 return NETDEV_TX_OK;
278 } 278 }
279 279
280 if (skb->sk != NULL) 280 if (skb->sk != NULL)
@@ -294,7 +294,7 @@ static int bpq_xmit(struct sk_buff *skb, struct net_device *dev)
294 if ((dev = bpq_get_ether_dev(dev)) == NULL) { 294 if ((dev = bpq_get_ether_dev(dev)) == NULL) {
295 dev->stats.tx_dropped++; 295 dev->stats.tx_dropped++;
296 kfree_skb(skb); 296 kfree_skb(skb);
297 return -ENODEV; 297 return NETDEV_TX_OK;
298 } 298 }
299 299
300 skb->protocol = ax25_type_trans(skb, dev); 300 skb->protocol = ax25_type_trans(skb, dev);