aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYu Watanabe <watanabe.yu+github@gmail.com>2022-01-31 13:02:57 +0900
committerYu Watanabe <watanabe.yu+github@gmail.com>2022-01-31 13:10:28 +0900
commit218a850268ca7839d1eecdc47fc6d602931e1e4f (patch)
tree16345987f27a593bfee92b06f79d4a59970df06a
parentnetwork: disable NDisc for CAN interfaces (diff)
downloadsystemd-218a850268ca7839d1eecdc47fc6d602931e1e4f.tar.xz
systemd-218a850268ca7839d1eecdc47fc6d602931e1e4f.zip
network: currently RADV requires MAC address whose length is ETH_ALEN
-rw-r--r--src/network/networkd-radv.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/network/networkd-radv.c b/src/network/networkd-radv.c
index 0c5eebc8157..507f0a0ccc8 100644
--- a/src/network/networkd-radv.c
+++ b/src/network/networkd-radv.c
@@ -57,6 +57,9 @@ bool link_radv_enabled(Link *link) {
if (!link_may_have_ipv6ll(link))
return false;
+ if (link->hw_addr.length != ETH_ALEN)
+ return false;
+
return link->network->router_prefix_delegation;
}
@@ -547,6 +550,9 @@ static int radv_is_ready_to_configure(Link *link) {
if (in6_addr_is_null(&link->ipv6ll_address))
return false;
+ if (link->hw_addr.length != ETH_ALEN || hw_addr_is_null(&link->hw_addr))
+ return false;
+
if (link->network->router_emit_dns && !link->network->router_dns) {
_cleanup_free_ struct in6_addr *dns = NULL;
size_t n_dns;