| From 621b24b09eb61c63f262da0c9c5f0e93348897e5 Mon Sep 17 00:00:00 2001 |
| From: Miquel Raynal <miquel.raynal@bootlin.com> |
| Date: Tue, 25 Jan 2022 13:14:24 +0100 |
| Subject: net: ieee802154: ca8210: Stop leaking skb's |
| |
| From: Miquel Raynal <miquel.raynal@bootlin.com> |
| |
| commit 621b24b09eb61c63f262da0c9c5f0e93348897e5 upstream. |
| |
| Upon error the ieee802154_xmit_complete() helper is not called. Only |
| ieee802154_wake_queue() is called manually. We then leak the skb |
| structure. |
| |
| Free the skb structure upon error before returning. |
| |
| Fixes: ded845a781a5 ("ieee802154: Add CA8210 IEEE 802.15.4 device driver") |
| Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com> |
| Acked-by: Alexander Aring <aahringo@redhat.com> |
| Link: https://lore.kernel.org/r/20220125121426.848337-5-miquel.raynal@bootlin.com |
| Signed-off-by: Stefan Schmidt <stefan@datenfreihafen.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| drivers/net/ieee802154/ca8210.c | 1 + |
| 1 file changed, 1 insertion(+) |
| |
| --- a/drivers/net/ieee802154/ca8210.c |
| +++ b/drivers/net/ieee802154/ca8210.c |
| @@ -1771,6 +1771,7 @@ static int ca8210_async_xmit_complete( |
| status |
| ); |
| if (status != MAC_TRANSACTION_OVERFLOW) { |
| + dev_kfree_skb_any(priv->tx_skb); |
| ieee802154_wake_queue(priv->hw); |
| return 0; |
| } |