lkml.org 
[lkml]   [2020]   [Oct]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.8 168/633] brcmfmac: check ndev pointer
    Date
    From: Tom Rix <trix@redhat.com>

    [ 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@redhat.com>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Link: https://lore.kernel.org/r/20200802161804.6126-1-trix@redhat.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c
    index c88655acc78c7..76b478f70b4bb 100644
    --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c
    +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c
    @@ -483,7 +483,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;
    --
    2.25.1


    \
     
     \ /
      Last update: 2020-10-27 18:18    [W:4.018 / U:0.056 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site