Patch "mwl8k: Fix a double Free in mwl8k_probe_hw" has been added to the 5.10-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    mwl8k: Fix a double Free in mwl8k_probe_hw

to the 5.10-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     mwl8k-fix-a-double-free-in-mwl8k_probe_hw.patch
and it can be found in the queue-5.10 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit d5664710c8e793e636ec56096f0bf35fb0648d44
Author: Lv Yunlong <lyl2019@xxxxxxxxxxxxxxxx>
Date:   Fri Apr 2 11:26:27 2021 -0700

    mwl8k: Fix a double Free in mwl8k_probe_hw
    
    [ Upstream commit a8e083ee8e2a6c94c29733835adae8bf5b832748 ]
    
    In mwl8k_probe_hw, hw->priv->txq is freed at the first time by
    dma_free_coherent() in the call chain:
    if(!priv->ap_fw)->mwl8k_init_txqs(hw)->mwl8k_txq_init(hw, i).
    
    Then in err_free_queues of mwl8k_probe_hw, hw->priv->txq is freed
    at the second time by mwl8k_txq_deinit(hw, i)->dma_free_coherent().
    
    My patch set txq->txd to NULL after the first free to avoid the
    double free.
    
    Fixes: a66098daacee2 ("mwl8k: Marvell TOPDOG wireless driver")
    Signed-off-by: Lv Yunlong <lyl2019@xxxxxxxxxxxxxxxx>
    Signed-off-by: Kalle Valo <kvalo@xxxxxxxxxxxxxx>
    Link: https://lore.kernel.org/r/20210402182627.4256-1-lyl2019@xxxxxxxxxxxxxxxx
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/net/wireless/marvell/mwl8k.c b/drivers/net/wireless/marvell/mwl8k.c
index 23efd7075df6..27b7d4b779e0 100644
--- a/drivers/net/wireless/marvell/mwl8k.c
+++ b/drivers/net/wireless/marvell/mwl8k.c
@@ -1469,6 +1469,7 @@ static int mwl8k_txq_init(struct ieee80211_hw *hw, int index)
 	txq->skb = kcalloc(MWL8K_TX_DESCS, sizeof(*txq->skb), GFP_KERNEL);
 	if (txq->skb == NULL) {
 		pci_free_consistent(priv->pdev, size, txq->txd, txq->txd_dma);
+		txq->txd = NULL;
 		return -ENOMEM;
 	}
 



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux