lkml.org 
[lkml]   [2019]   [Jul]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL 5.2 005/249] wil6210: fix potential out-of-bounds read
    Date
    From: "Gustavo A. R. Silva" <gustavo@embeddedor.com>

    [ Upstream commit bfabdd6997323adbedccb13a3fed1967fb8cf8f5 ]

    Notice that *rc* can evaluate to up to 5, include/linux/netdevice.h:

    enum gro_result {
    GRO_MERGED,
    GRO_MERGED_FREE,
    GRO_HELD,
    GRO_NORMAL,
    GRO_DROP,
    GRO_CONSUMED,
    };
    typedef enum gro_result gro_result_t;

    In case *rc* evaluates to 5, we end up having an out-of-bounds read
    at drivers/net/wireless/ath/wil6210/txrx.c:821:

    wil_dbg_txrx(wil, "Rx complete %d bytes => %s\n",
    len, gro_res_str[rc]);

    Fix this by adding element "GRO_CONSUMED" to array gro_res_str.

    Addresses-Coverity-ID: 1444666 ("Out-of-bounds read")
    Fixes: 194b482b5055 ("wil6210: Debug print GRO Rx result")
    Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
    Reviewed-by: Maya Erez <merez@codeaurora.org>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/net/wireless/ath/wil6210/txrx.c | 1 +
    1 file changed, 1 insertion(+)

    diff --git a/drivers/net/wireless/ath/wil6210/txrx.c b/drivers/net/wireless/ath/wil6210/txrx.c
    index 4ccfd1404458..d74837cce67f 100644
    --- a/drivers/net/wireless/ath/wil6210/txrx.c
    +++ b/drivers/net/wireless/ath/wil6210/txrx.c
    @@ -750,6 +750,7 @@ void wil_netif_rx_any(struct sk_buff *skb, struct net_device *ndev)
    [GRO_HELD] = "GRO_HELD",
    [GRO_NORMAL] = "GRO_NORMAL",
    [GRO_DROP] = "GRO_DROP",
    + [GRO_CONSUMED] = "GRO_CONSUMED",
    };

    wil->txrx_ops.get_netif_rx_params(skb, &cid, &security);
    --
    2.20.1
    \
     
     \ /
      Last update: 2019-07-15 16:15    [W:4.052 / U:0.220 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site