summaryrefslogtreecommitdiffstats
path: root/net/mac802154/wpan.c
diff options
context:
space:
mode:
authorAlan Ott <alan@signal11.us>2012-11-29 19:25:10 +0100
committerDavid S. Miller <davem@davemloft.net>2012-11-30 18:19:24 +0100
commitfcefbe9fcb3b0d72c91629f7fcf7ea09a46ab2c1 (patch)
tree7b68000fe15086df2037cf4dbb89242b77257a7f /net/mac802154/wpan.c
parent6lowpan: consider checksum bytes in fragmentation threshold (diff)
downloadlinux-fcefbe9fcb3b0d72c91629f7fcf7ea09a46ab2c1.tar.xz
linux-fcefbe9fcb3b0d72c91629f7fcf7ea09a46ab2c1.zip
mac802154: fix memory leaks
kfree_skb() was not getting called in the case of some failures. This was pointed out by Eric Dumazet. Signed-off-by: Alan Ott <alan@signal11.us> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/mac802154/wpan.c')
-rw-r--r--net/mac802154/wpan.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/net/mac802154/wpan.c b/net/mac802154/wpan.c
index f30f6d4beea1..1191039c2b1b 100644
--- a/net/mac802154/wpan.c
+++ b/net/mac802154/wpan.c
@@ -327,8 +327,10 @@ mac802154_wpan_xmit(struct sk_buff *skb, struct net_device *dev)
if (chan == MAC802154_CHAN_NONE ||
page >= WPAN_NUM_PAGES ||
- chan >= WPAN_NUM_CHANNELS)
+ chan >= WPAN_NUM_CHANNELS) {
+ kfree_skb(skb);
return NETDEV_TX_OK;
+ }
skb->skb_iif = dev->ifindex;
dev->stats.tx_packets++;