]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
wifi: mt76: connac: fix possible unaligned access in mt76_connac_mcu_add_nested_tlv
authorLorenzo Bianconi <lorenzo@kernel.org>
Mon, 25 Jul 2022 14:12:06 +0000 (16:12 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 21 Oct 2022 10:38:09 +0000 (12:38 +0200)
[ Upstream commit 0a4860f627f1f2b2b777f54f993de1638a79da9f ]

Fix possible unaligned pointer in mt76_connac_mcu_add_nested_tlv
routine.

Reported-by: kernel test robot <lkp@intel.com>
Fixes: 25702d9c55dc5 ("mt76: connac: rely on le16_add_cpu in mt76_connac_mcu_add_nested_tlv")
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/mt76_connac_mcu.c

index 9b17bd97ec0945a94dac93b61d6d4c38678bd06f..13d4722e4186c250da165cb99d0d3a7e8bfd958f 100644 (file)
@@ -260,8 +260,10 @@ mt76_connac_mcu_add_nested_tlv(struct sk_buff *skb, int tag, int len,
        ntlv = le16_to_cpu(ntlv_hdr->tlv_num);
        ntlv_hdr->tlv_num = cpu_to_le16(ntlv + 1);
 
-       if (sta_hdr)
-               le16_add_cpu(&sta_hdr->len, len);
+       if (sta_hdr) {
+               len += le16_to_cpu(sta_hdr->len);
+               sta_hdr->len = cpu_to_le16(len);
+       }
 
        return ptlv;
 }