diff options
author | Guillaume Nault <g.nault@alphalink.fr> | 2018-04-10 21:01:13 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2018-04-11 17:41:27 -0400 |
commit | f6cd651b056ffd3b4e8496afd44d4ed44bf69136 (patch) | |
tree | f616d85bc1fa0339fc227d4672cea1f4b4042a30 /net/l2tp/l2tp_netlink.c | |
parent | 6b9f34239b00e6956a267abed2bc559ede556ad6 (diff) | |
download | linux-f6cd651b056ffd3b4e8496afd44d4ed44bf69136.tar.gz linux-f6cd651b056ffd3b4e8496afd44d4ed44bf69136.tar.bz2 linux-f6cd651b056ffd3b4e8496afd44d4ed44bf69136.zip |
l2tp: fix race in duplicate tunnel detection
We can't use l2tp_tunnel_find() to prevent l2tp_nl_cmd_tunnel_create()
from creating a duplicate tunnel. A tunnel can be concurrently
registered after l2tp_tunnel_find() returns. Therefore, searching for
duplicates must be done at registration time.
Finally, remove l2tp_tunnel_find() entirely as it isn't use anywhere
anymore.
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>
Diffstat (limited to 'net/l2tp/l2tp_netlink.c')
-rw-r--r-- | net/l2tp/l2tp_netlink.c | 6 |
1 files changed, 0 insertions, 6 deletions
diff --git a/net/l2tp/l2tp_netlink.c b/net/l2tp/l2tp_netlink.c index 45db9b73eb1a..b05dbd9ffcb2 100644 --- a/net/l2tp/l2tp_netlink.c +++ b/net/l2tp/l2tp_netlink.c @@ -236,12 +236,6 @@ static int l2tp_nl_cmd_tunnel_create(struct sk_buff *skb, struct genl_info *info if (info->attrs[L2TP_ATTR_DEBUG]) cfg.debug = nla_get_u32(info->attrs[L2TP_ATTR_DEBUG]); - tunnel = l2tp_tunnel_find(net, tunnel_id); - if (tunnel != NULL) { - ret = -EEXIST; - goto out; - } - ret = -EINVAL; switch (cfg.encap) { case L2TP_ENCAPTYPE_UDP: |