Patch "brcmfmac: check ndev pointer" has been added to the 5.9-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

    brcmfmac: check ndev pointer

to the 5.9-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:
     brcmfmac-check-ndev-pointer.patch
and it can be found in the queue-5.9 subdirectory.

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



commit 076167f8d53abfd1395a3c2526ab02b51ce289b8
Author: Tom Rix <trix@xxxxxxxxxx>
Date:   Sun Aug 2 09:18:04 2020 -0700

    brcmfmac: check ndev pointer
    
    [ Upstream commit 9c9f015bc9f8839831c7ba0a6d731a3853c464e2 ]
    
    Clang static analysis reports this error
    
    brcmfmac/core.c:490:4: warning: Dereference of null pointer
            (*ifp)->ndev->stats.rx_errors++;
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    
    In this block of code
    
            if (ret || !(*ifp) || !(*ifp)->ndev) {
                    if (ret != -ENODATA && *ifp)
                            (*ifp)->ndev->stats.rx_errors++;
                    brcmu_pkt_buf_free_skb(skb);
                    return -ENODATA;
            }
    
    (*ifp)->ndev being NULL is caught as an error
    But then it is used to report the error.
    
    So add a check before using it.
    
    Fixes: 91b632803ee4 ("brcmfmac: Use net_device_stats from struct net_device")
    Signed-off-by: Tom Rix <trix@xxxxxxxxxx>
    Signed-off-by: Kalle Valo <kvalo@xxxxxxxxxxxxxx>
    Link: https://lore.kernel.org/r/20200802161804.6126-1-trix@xxxxxxxxxx
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c
index f89010a81ffbe..aa9ced3c86fbd 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c
@@ -486,7 +486,7 @@ static int brcmf_rx_hdrpull(struct brcmf_pub *drvr, struct sk_buff *skb,
 	ret = brcmf_proto_hdrpull(drvr, true, skb, ifp);
 
 	if (ret || !(*ifp) || !(*ifp)->ndev) {
-		if (ret != -ENODATA && *ifp)
+		if (ret != -ENODATA && *ifp && (*ifp)->ndev)
 			(*ifp)->ndev->stats.rx_errors++;
 		brcmu_pkt_buf_free_skb(skb);
 		return -ENODATA;



[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