From: Yu Watanabe Date: Mon, 31 Jan 2022 04:07:34 +0000 (+0900) Subject: network: currently IPv4ACD requires MAC address whose length is ETH_ALEN X-Git-Tag: v251-rc1~406^2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=refs%2Fpull%2F22316%2Fhead;p=thirdparty%2Fsystemd.git network: currently IPv4ACD requires MAC address whose length is ETH_ALEN --- diff --git a/src/network/networkd-ipv4acd.c b/src/network/networkd-ipv4acd.c index 703278f8b86..009cde27de1 100644 --- a/src/network/networkd-ipv4acd.c +++ b/src/network/networkd-ipv4acd.c @@ -132,7 +132,8 @@ int ipv4acd_configure(Address *address) { int r; assert(address); - assert(address->link); + + link = ASSERT_PTR(address->link); if (address->family != AF_INET) return 0; @@ -140,6 +141,9 @@ int ipv4acd_configure(Address *address) { if (!FLAGS_SET(address->duplicate_address_detection, ADDRESS_FAMILY_IPV4)) return 0; + if (link->hw_addr.length != ETH_ALEN || hw_addr_is_null(&link->hw_addr)) + return 0; + /* Currently, only static and DHCP4 addresses are supported. */ assert(IN_SET(address->source, NETWORK_CONFIG_SOURCE_STATIC, NETWORK_CONFIG_SOURCE_DHCP4)); @@ -148,8 +152,6 @@ int ipv4acd_configure(Address *address) { return 0; } - link = address->link; - log_link_debug(link, "Configuring IPv4ACD for address "IPV4_ADDRESS_FMT_STR, IPV4_ADDRESS_FMT_VAL(address->in_addr.in));