From: Yu Watanabe Date: Fri, 1 Oct 2021 08:59:56 +0000 (+0900) Subject: network: radv: ignore Assign= if prefixlen is larger than 64 X-Git-Tag: v250-rc1~552^2~14 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=fcd7ad52d7ea361ed6b40191328676ee345105f6;p=thirdparty%2Fsystemd.git network: radv: ignore Assign= if prefixlen is larger than 64 --- diff --git a/src/network/networkd-radv.c b/src/network/networkd-radv.c index dabd91c0f9a..b9ba0ff9baa 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();