OSDN Git Service

mt76: testmode: fix memory leak in mt76_testmode_alloc_skb
authorLorenzo Bianconi <lorenzo@kernel.org>
Thu, 27 May 2021 11:35:28 +0000 (13:35 +0200)
committerFelix Fietkau <nbd@nbd.name>
Sat, 19 Jun 2021 07:22:46 +0000 (09:22 +0200)
Free all pending frames in case of failure in mt76_testmode_alloc_skb
routine

Fixes: 2601dda8faa76 ("mt76: testmode: add support to send larger packet")
Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
drivers/net/wireless/mediatek/mt76/testmode.c

index 001d0ba..f40387a 100644 (file)
@@ -158,8 +158,11 @@ int mt76_testmode_alloc_skb(struct mt76_phy *phy, u32 len)
                        frag_len = MT_TXP_MAX_LEN;
 
                frag = alloc_skb(frag_len, GFP_KERNEL);
-               if (!frag)
+               if (!frag) {
+                       mt76_testmode_free_skb(phy);
+                       dev_kfree_skb(head);
                        return -ENOMEM;
+               }
 
                __skb_put_zero(frag, frag_len);
                head->len += frag->len;