diff options
author | Sascha Hlusiak <contact@saschahlusiak.de> | 2009-05-19 14:56:51 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-05-20 01:02:02 +0200 |
commit | 9af28511be10e175eb0cabb2ba5cfafe77408d84 (patch) | |
tree | 82ba3e85243a0eeb754cf549e628656ac25d9da6 /net/ipv6/addrconf.c | |
parent | sit: ipip6_tunnel_del_prl: return err (diff) | |
download | linux-9af28511be10e175eb0cabb2ba5cfafe77408d84.tar.xz linux-9af28511be10e175eb0cabb2ba5cfafe77408d84.zip |
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/addrconf.c')
-rw-r--r-- | net/ipv6/addrconf.c | 2 |
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) int __ipv6_isatap_ifid(u8 *eui, __be32 addr) { + if (addr == 0) + return -1; eui[0] = (ipv4_is_zeronet(addr) || ipv4_is_private_10(addr) || ipv4_is_loopback(addr) || ipv4_is_linklocal_169(addr) || ipv4_is_private_172(addr) || ipv4_is_test_192(addr) || |