From fcefbe9fcb3b0d72c91629f7fcf7ea09a46ab2c1 Mon Sep 17 00:00:00 2001 From: Alan Ott Date: Thu, 29 Nov 2012 18:25:10 +0000 Subject: 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 Signed-off-by: David S. Miller --- net/mac802154/tx.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'net/mac802154/tx.c') diff --git a/net/mac802154/tx.c b/net/mac802154/tx.c index 1a4df39c722e..db639140afc6 100644 --- a/net/mac802154/tx.c +++ b/net/mac802154/tx.c @@ -85,6 +85,7 @@ netdev_tx_t mac802154_tx(struct mac802154_priv *priv, struct sk_buff *skb, if (!(priv->phy->channels_supported[page] & (1 << chan))) { WARN_ON(1); + kfree_skb(skb); return NETDEV_TX_OK; } @@ -103,8 +104,10 @@ netdev_tx_t mac802154_tx(struct mac802154_priv *priv, struct sk_buff *skb, } work = kzalloc(sizeof(struct xmit_work), GFP_ATOMIC); - if (!work) + if (!work) { + kfree_skb(skb); return NETDEV_TX_BUSY; + } INIT_WORK(&work->work, mac802154_xmit_worker); work->skb = skb; -- cgit v1.2.3