lkml.org 
[lkml]   [2020]   [May]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.4 51/65] l2tp: hold tunnel while handling genl tunnel updates
    Date
    From: Guillaume Nault <g.nault@alphalink.fr>

    commit 8c0e421525c9eb50d68e8f633f703ca31680b746 upstream.

    We need to make sure the tunnel is not going to be destroyed by
    l2tp_tunnel_destruct() concurrently.

    Fixes: 309795f4bec2 ("l2tp: Add netlink control API for L2TP")
    Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Giuliano Procida <gprocida@google.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ---
    net/l2tp/l2tp_netlink.c | 6 ++++--
    1 file changed, 4 insertions(+), 2 deletions(-)

    --- a/net/l2tp/l2tp_netlink.c
    +++ b/net/l2tp/l2tp_netlink.c
    @@ -310,8 +310,8 @@ static int l2tp_nl_cmd_tunnel_modify(str
    }
    tunnel_id = nla_get_u32(info->attrs[L2TP_ATTR_CONN_ID]);

    - tunnel = l2tp_tunnel_find(net, tunnel_id);
    - if (tunnel == NULL) {
    + tunnel = l2tp_tunnel_get(net, tunnel_id);
    + if (!tunnel) {
    ret = -ENODEV;
    goto out;
    }
    @@ -322,6 +322,8 @@ static int l2tp_nl_cmd_tunnel_modify(str
    ret = l2tp_tunnel_notify(&l2tp_nl_family, info,
    tunnel, L2TP_CMD_TUNNEL_MODIFY);

    + l2tp_tunnel_dec_refcount(tunnel);
    +
    out:
    return ret;
    }

    \
     
     \ /
      Last update: 2020-05-26 20:58    [W:2.998 / U:0.272 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site