wifi: mt76: handle failure of vzalloc in mt7615_coredump_work
authorKang Chen <void0red@gmail.com>
Mon, 27 Feb 2023 14:48:23 +0000 (22:48 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 11 May 2023 14:03:24 +0000 (23:03 +0900)
[ Upstream commit 9e47dd9f64a47ae00ca0123017584c37209ee900 ]

vzalloc may fails, dump might be null and will cause
illegal address access later.

Link: https://lore.kernel.org/all/Y%2Fy5Asxw3T3m4jCw@lore-desk
Fixes: d2bf7959d9c0 ("mt76: mt7663: introduce coredump support")
Signed-off-by: Kang Chen <void0red@gmail.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/wireless/mediatek/mt76/mt7615/mac.c

index d7a76c0..faed43b 100644 (file)
@@ -2343,7 +2343,7 @@ void mt7615_coredump_work(struct work_struct *work)
                        break;
 
                skb_pull(skb, sizeof(struct mt7615_mcu_rxd));
-               if (data + skb->len - dump > MT76_CONNAC_COREDUMP_SZ) {
+               if (!dump || data + skb->len - dump > MT76_CONNAC_COREDUMP_SZ) {
                        dev_kfree_skb(skb);
                        continue;
                }
@@ -2353,6 +2353,8 @@ void mt7615_coredump_work(struct work_struct *work)
 
                dev_kfree_skb(skb);
        }
-       dev_coredumpv(dev->mt76.dev, dump, MT76_CONNAC_COREDUMP_SZ,
-                     GFP_KERNEL);
+
+       if (dump)
+               dev_coredumpv(dev->mt76.dev, dump, MT76_CONNAC_COREDUMP_SZ,
+                             GFP_KERNEL);
 }