mt76: fix potential DMA mapping leak
authorFelix Fietkau <nbd@nbd.name>
Tue, 23 Mar 2021 21:47:37 +0000 (22:47 +0100)
committerFelix Fietkau <nbd@nbd.name>
Mon, 12 Apr 2021 21:07:24 +0000 (23:07 +0200)
With buf uninitialized in mt76_dma_tx_queue_skb_raw, its field skip_unmap
could potentially inherit a non-zero value from stack garbage.
If this happens, it will cause DMA mappings for MCU command frames to not be
unmapped after completion

Fixes: 27d5c528a7ca ("mt76: fix double DMA unmap of the first buffer on 7615/7915")
Cc: stable@vger.kernel.org
Signed-off-by: Felix Fietkau <nbd@nbd.name>
drivers/net/wireless/mediatek/mt76/dma.c

index b87b465..6ea58ae 100644 (file)
@@ -318,7 +318,7 @@ static int
 mt76_dma_tx_queue_skb_raw(struct mt76_dev *dev, struct mt76_queue *q,
                          struct sk_buff *skb, u32 tx_info)
 {
-       struct mt76_queue_buf buf;
+       struct mt76_queue_buf buf = {};
        dma_addr_t addr;
 
        if (q->queued + 1 >= q->ndesc - 1)