[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <58db316c71cf5257ef5da86763c511f8c5938987.1489184335.git.mschiffer@universe-factory.net>
Date: Fri, 10 Mar 2017 23:39:42 +0100
From: Matthias Schiffer <mschiffer@...verse-factory.net>
To: davem@...emloft.net, jbenc@...hat.com, hannes@...essinduktion.org,
pshelar@....org, aduyck@...antis.com, roopa@...ulusnetworks.com
Cc: netdev@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: [PATCH net-next 1/3] vxlan: don't allow link-local IPv6 local/remote addresses without interface
Signed-off-by: Matthias Schiffer <mschiffer@...verse-factory.net>
---
drivers/net/vxlan.c | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/drivers/net/vxlan.c b/drivers/net/vxlan.c
index e375560cc74e..cc0ace73d02e 100644
--- a/drivers/net/vxlan.c
+++ b/drivers/net/vxlan.c
@@ -2922,6 +2922,18 @@ static int vxlan_dev_configure(struct net *src_net, struct net_device *dev,
pr_info("multicast destination requires interface to be specified\n");
return -EINVAL;
}
+#if IS_ENABLED(CONFIG_IPV6)
+ else if (!conf->remote_ifindex &&
+ ((conf->saddr.sa.sa_family == AF_INET6 &&
+ (ipv6_addr_type(&conf->saddr.sin6.sin6_addr) &
+ IPV6_ADDR_LINKLOCAL)) ||
+ (dst->remote_ip.sa.sa_family == AF_INET6 &&
+ (ipv6_addr_type(&dst->remote_ip.sin6.sin6_addr) &
+ IPV6_ADDR_LINKLOCAL)))) {
+ pr_info("link-local local/remote addresses require interface to be specified\n");
+ return -EINVAL;
+ }
+#endif
if (conf->mtu) {
int max_mtu = ETH_MAX_MTU;
--
2.12.0
Powered by blists - more mailing lists