2014-06-02 08:43:36

by Nicolas Dichtel

[permalink] [raw]
Subject: Re: [PATCH 3.10 47/86] vti: dont allow to add the same tunnel twice

Le 29/05/2014 06:37, Greg Kroah-Hartman a écrit :
> 3.10-stable review patch. If anyone has any objections, please let me know.
>
> ------------------
>
> From: Nicolas Dichtel <[email protected]>
>
> [ Upstream commit 8d89dcdf80d88007647945a753821a06eb6cc5a5 ]
>
> Before the patch, it was possible to add two times the same tunnel:
> ip l a vti1 type vti remote 10.16.0.121 local 10.16.0.249 key 41
> ip l a vti2 type vti remote 10.16.0.121 local 10.16.0.249 key 41
>
> It was possible, because ip_tunnel_newlink() calls ip_tunnel_find() with the
> argument dev->type, which was set only later (when calling ndo_init handler
> in register_netdevice()). Let's set this type in the setup handler, which is
> called before newlink handler.
>
> Introduced by commit b9959fd3b0fa ("vti: switch to new ip tunnel code").
Not sure to understand why this patch is backported:
$ git describe --contains b9959fd3b0fa
v3.12-rc1~132^2~479

In fact, the patch does not change anything.


Regards,
Nicolas

>
> CC: Cong Wang <[email protected]>
> CC: Steffen Klassert <[email protected]>
> Signed-off-by: Nicolas Dichtel <[email protected]>
> Signed-off-by: David S. Miller <[email protected]>
> Signed-off-by: Greg Kroah-Hartman <[email protected]>
> ---
> net/ipv4/ip_vti.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> --- a/net/ipv4/ip_vti.c
> +++ b/net/ipv4/ip_vti.c
> @@ -579,9 +579,9 @@ static void vti_dev_free(struct net_devi
> static void vti_tunnel_setup(struct net_device *dev)
> {
> dev->netdev_ops = &vti_netdev_ops;
> + dev->type = ARPHRD_TUNNEL;
> dev->destructor = vti_dev_free;
>
> - dev->type = ARPHRD_TUNNEL;
> dev->hard_header_len = LL_MAX_HEADER + sizeof(struct iphdr);
> dev->mtu = ETH_DATA_LEN;
> dev->flags = IFF_NOARP;
>
>