lkml.org 
[lkml]   [2022]   [Jun]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.18 192/339] amt: fix possible null-ptr-deref in amt_rcv()
    Date
    From: Taehee Yoo <ap420073@gmail.com>

    [ Upstream commit d16207f92a4a823c48b4ea953ad51f4483456768 ]

    When amt interface receives amt message, it tries to obtain amt private
    data from sock.
    If there is no amt private data, it frees an skb immediately.
    After kfree_skb(), it increases the rx_dropped stats.
    But in order to use rx_dropped, amt private data is needed.
    So, it makes amt_rcv() to do not increase rx_dropped stats when it can
    not obtain amt private data.

    Reported-by: kernel test robot <lkp@intel.com>
    Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
    Fixes: 1a1a0e80e005 ("amt: fix possible memory leak in amt_rcv()")
    Signed-off-by: Taehee Yoo <ap420073@gmail.com>
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/net/amt.c | 3 ++-
    1 file changed, 2 insertions(+), 1 deletion(-)

    diff --git a/drivers/net/amt.c b/drivers/net/amt.c
    index fbb03562cb95..2815db7ee2a3 100644
    --- a/drivers/net/amt.c
    +++ b/drivers/net/amt.c
    @@ -2698,7 +2698,8 @@ static int amt_rcv(struct sock *sk, struct sk_buff *skb)
    amt = rcu_dereference_sk_user_data(sk);
    if (!amt) {
    err = true;
    - goto drop;
    + kfree_skb(skb);
    + goto out;
    }

    skb->dev = amt->dev;
    --
    2.35.1


    \
     
     \ /
      Last update: 2022-06-13 15:52    [W:2.115 / U:0.032 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site