| From af6c480ca5c62f263274c67ddf459569bd45fe71 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Tue, 21 Jul 2020 10:19:22 +0200 |
| Subject: mt76: mt7615: fix possible memory leak in mt7615_mcu_wtbl_sta_add |
| |
| From: Lorenzo Bianconi <lorenzo@kernel.org> |
| |
| [ Upstream commit 2bccc8415883c1cd5ae8836548d9783dbbd84999 ] |
| |
| Free the second mcu skb if __mt76_mcu_skb_send_msg() fails to transmit |
| the first one in mt7615_mcu_wtbl_sta_add(). |
| |
| Fixes: 99c457d902cf9 ("mt76: mt7615: move mt7615_mcu_set_bmc to mt7615_mcu_ops") |
| 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/mt7615/mcu.c | 6 +++++- |
| 1 file changed, 5 insertions(+), 1 deletion(-) |
| |
| diff --git a/drivers/net/wireless/mediatek/mt76/mt7615/mcu.c b/drivers/net/wireless/mediatek/mt76/mt7615/mcu.c |
| index 9c55424962522..81d6127dc6fd8 100644 |
| --- a/drivers/net/wireless/mediatek/mt76/mt7615/mcu.c |
| +++ b/drivers/net/wireless/mediatek/mt76/mt7615/mcu.c |
| @@ -1036,8 +1036,12 @@ mt7615_mcu_wtbl_sta_add(struct mt7615_dev *dev, struct ieee80211_vif *vif, |
| skb = enable ? wskb : sskb; |
| |
| err = __mt76_mcu_skb_send_msg(&dev->mt76, skb, cmd, true); |
| - if (err < 0) |
| + if (err < 0) { |
| + skb = enable ? sskb : wskb; |
| + dev_kfree_skb(skb); |
| + |
| return err; |
| + } |
| |
| cmd = enable ? MCU_EXT_CMD_STA_REC_UPDATE : MCU_EXT_CMD_WTBL_UPDATE; |
| skb = enable ? sskb : wskb; |
| -- |
| 2.25.1 |
| |