lkml.org 
[lkml]   [2018]   [Sep]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.9 003/107] xfrm: free skb if nlsk pointer is NULL
    Date
    4.9-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Florian Westphal <fw@strlen.de>

    [ Upstream commit 86126b77dcd551ce223e7293bb55854e3df05646 ]

    nlmsg_multicast() always frees the skb, so in case we cannot call
    it we must do that ourselves.

    Fixes: 21ee543edc0dea ("xfrm: fix race between netns cleanup and state expire notification")
    Signed-off-by: Florian Westphal <fw@strlen.de>
    Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ---
    net/xfrm/xfrm_user.c | 10 ++++++----
    1 file changed, 6 insertions(+), 4 deletions(-)

    --- a/net/xfrm/xfrm_user.c
    +++ b/net/xfrm/xfrm_user.c
    @@ -984,10 +984,12 @@ static inline int xfrm_nlmsg_multicast(s
    {
    struct sock *nlsk = rcu_dereference(net->xfrm.nlsk);

    - if (nlsk)
    - return nlmsg_multicast(nlsk, skb, pid, group, GFP_ATOMIC);
    - else
    - return -1;
    + if (!nlsk) {
    + kfree_skb(skb);
    + return -EPIPE;
    + }
    +
    + return nlmsg_multicast(nlsk, skb, pid, group, GFP_ATOMIC);
    }

    static inline size_t xfrm_spdinfo_msgsize(void)

    \
     
     \ /
      Last update: 2018-09-03 19:12    [W:2.394 / U:0.776 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site