lkml.org 
[lkml]   [2020]   [Jan]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL 4.19 290/671] brcmfmac: fix leak of mypkt on error return path
    Date
    From: Colin Ian King <colin.king@canonical.com>

    [ Upstream commit a927e8d8ab57e696800e20cf09a72b7dfe3bbebb ]

    Currently if the call to brcmf_sdiod_set_backplane_window fails then
    error return path leaks mypkt. Fix this by returning by a new
    error path labelled 'out' that calls brcmu_pkt_buf_free_skb to free
    mypkt. Also remove redundant check on err before calling
    brcmf_sdiod_skbuff_write.

    Addresses-Coverity: ("Resource Leak")
    Fixes: a7c3aa1509e2 ("brcmfmac: Remove brcmf_sdiod_addrprep()")
    Signed-off-by: Colin Ian King <colin.king@canonical.com>
    Reviewed-by: Mukesh Ojha <mojha@codeaurora.org>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c | 8 +++-----
    1 file changed, 3 insertions(+), 5 deletions(-)

    diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
    index d2f788d88668..710dc59c5d34 100644
    --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
    +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
    @@ -617,15 +617,13 @@ int brcmf_sdiod_send_buf(struct brcmf_sdio_dev *sdiodev, u8 *buf, uint nbytes)

    err = brcmf_sdiod_set_backplane_window(sdiodev, addr);
    if (err)
    - return err;
    + goto out;

    addr &= SBSDIO_SB_OFT_ADDR_MASK;
    addr |= SBSDIO_SB_ACCESS_2_4B_FLAG;

    - if (!err)
    - err = brcmf_sdiod_skbuff_write(sdiodev, sdiodev->func2, addr,
    - mypkt);
    -
    + err = brcmf_sdiod_skbuff_write(sdiodev, sdiodev->func2, addr, mypkt);
    +out:
    brcmu_pkt_buf_free_skb(mypkt);

    return err;
    --
    2.20.1
    \
     
     \ /
      Last update: 2020-01-16 20:01    [W:2.333 / U:1.152 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site