From fcd7ad52d7ea361ed6b40191328676ee345105f6 Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Fri, 1 Oct 2021 17:59:56 +0900 Subject: [PATCH] network: radv: ignore Assign= if prefixlen is larger than 64 --- src/network/networkd-radv.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/network/networkd-radv.c b/src/network/networkd-radv.c index dabd91c0f9..b9ba0ff9ba 100644 --- a/src/network/networkd-radv.c +++ b/src/network/networkd-radv.c @@ -215,6 +215,17 @@ int link_request_radv_addresses(Link *link) { if (r < 0) return r; + /* generate_eui64_address() below requires the prefix length <= 64. */ + if (prefixlen > 64) { + _cleanup_free_ char *str = NULL; + + (void) in6_addr_prefix_to_string(&prefix, prefixlen, &str); + log_link_debug(link, + "Prefix is longer than 64, refusing to assign an address in %s.", + strna(str)); + continue; + } + r = address_new(&address); if (r < 0) return log_oom();