aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv6
diff options
context:
space:
mode:
authorSascha Hlusiak <contact@saschahlusiak.de>2009-05-19 08:56:51 -0400
committerDavid S. Miller <davem@davemloft.net>2009-05-19 19:02:02 -0400
commit9af28511be10e175eb0cabb2ba5cfafe77408d84 (patch)
tree82ba3e85243a0eeb754cf549e628656ac25d9da6 /net/ipv6
parent4b2796017487f3c1e423b8e1ada6c94c0a8ea815 (diff)
addrconf: refuse isatap eui64 for INADDR_ANY
A tunnel with no local ipv4 endpoint would otherwise use the ISATAP linklocal address fe80::5efe:0:0, which is invalid. Rather not add a linklocal address at all. Signed-off-by: Sascha Hlusiak <contact@saschahlusiak.de> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv6')
-rw-r--r--net/ipv6/addrconf.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c
index 9eb61c7cae57..31938e5fb220 100644
--- a/net/ipv6/addrconf.c
+++ b/net/ipv6/addrconf.c
@@ -1520,6 +1520,8 @@ static int addrconf_ifid_infiniband(u8 *eui, struct net_device *dev)
1520 1520
1521int __ipv6_isatap_ifid(u8 *eui, __be32 addr) 1521int __ipv6_isatap_ifid(u8 *eui, __be32 addr)
1522{ 1522{
1523 if (addr == 0)
1524 return -1;
1523 eui[0] = (ipv4_is_zeronet(addr) || ipv4_is_private_10(addr) || 1525 eui[0] = (ipv4_is_zeronet(addr) || ipv4_is_private_10(addr) ||
1524 ipv4_is_loopback(addr) || ipv4_is_linklocal_169(addr) || 1526 ipv4_is_loopback(addr) || ipv4_is_linklocal_169(addr) ||
1525 ipv4_is_private_172(addr) || ipv4_is_test_192(addr) || 1527 ipv4_is_private_172(addr) || ipv4_is_test_192(addr) ||