]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
mt76: mt7915: fix possible memory leak in mt7915_mcu_add_sta
authorLorenzo Bianconi <lorenzo@kernel.org>
Mon, 24 Jan 2022 19:36:52 +0000 (20:36 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 8 Apr 2022 12:06:03 +0000 (14:06 +0200)
[ Upstream commit a43736cd12d82913102eb49cb56787a5553e028f ]

Free allocated skb in mt7915_mcu_add_sta routine in case of failures.

Fixes: 89bbd3730f382 ("mt76: mt7915: rework starec TLV tags")
Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/wireless/mediatek/mt76/mt7915/mcu.c

index abc798536a81091caf5c774b1f2b4343e6df6361..0b6fecc8b3b6060e731991419a80635f0158d14d 100644 (file)
@@ -2397,8 +2397,10 @@ int mt7915_mcu_add_sta(struct mt7915_dev *dev, struct ieee80211_vif *vif,
        }
 
        ret = mt7915_mcu_sta_wtbl_tlv(dev, skb, vif, sta);
-       if (ret)
+       if (ret) {
+               dev_kfree_skb(skb);
                return ret;
+       }
 
        if (sta && sta->ht_cap.ht_supported) {
                /* starec amsdu */
@@ -2412,8 +2414,10 @@ int mt7915_mcu_add_sta(struct mt7915_dev *dev, struct ieee80211_vif *vif,
        }
 
        ret = mt7915_mcu_add_group(dev, vif, sta);
-       if (ret)
+       if (ret) {
+               dev_kfree_skb(skb);
                return ret;
+       }
 out:
        return mt76_mcu_skb_send_msg(&dev->mt76, skb,
                                     MCU_EXT_CMD(STA_REC_UPDATE), true);