Skip to content

Commit

Permalink
ip6_vti: Return an error when adding an existing tunnel.
Browse files Browse the repository at this point in the history
vti6_locate() should not return an existing tunnel if
create is true. Otherwise it is possible to add the same
tunnel multiple times without getting an error.

So return NULL if the tunnel that should be created already
exists.

Signed-off-by: Steffen Klassert <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
  • Loading branch information
klassert authored and davem330 committed Sep 28, 2014
1 parent 2b0bb01 commit d814b84
Showing 1 changed file with 5 additions and 1 deletion.
6 changes: 5 additions & 1 deletion net/ipv6/ip6_vti.c
Original file line number Diff line number Diff line change
Expand Up @@ -253,8 +253,12 @@ static struct ip6_tnl *vti6_locate(struct net *net, struct __ip6_tnl_parm *p,
(t = rtnl_dereference(*tp)) != NULL;
tp = &t->next) {
if (ipv6_addr_equal(local, &t->parms.laddr) &&
ipv6_addr_equal(remote, &t->parms.raddr))
ipv6_addr_equal(remote, &t->parms.raddr)) {
if (create)
return NULL;

return t;
}
}
if (!create)
return NULL;
Expand Down

0 comments on commit d814b84

Please sign in to comment.