sd-ndisc: drop RA packets from non-link-local addresses

See https://tools.ietf.org/html/rfc4861#section-4.2. Some routers (dnsmasq) will send packets
from global addresses, which would break the default route setup, so ignore those.

This is also what the kernel does.
This commit is contained in:
Tom Gundersen
2015-11-19 01:25:40 +01:00
parent 81ec9ce4a7
commit 3ccd316353
+3
View File
@@ -508,6 +508,9 @@ static int ndisc_router_advertisment_recv(sd_event_source *s, int fd, uint32_t r
return 0;
}
if (!in_addr_is_link_local(AF_INET6, (const union in_addr_union*) &router.in6.sin6_addr))
return 0;
if (ra->nd_ra_type != ND_ROUTER_ADVERT)
return 0;