From 05a7023d242b9012216c661f253df1c9c3d45b39 Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Wed, 2 Dec 2020 19:26:41 +0900 Subject: [PATCH] network: fix verification for broadcast address Fixes a bug caused by fe841414ef157f7f01d339c5d5730126e7b5fe0a. --- src/network/networkd-address.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/network/networkd-address.c b/src/network/networkd-address.c index 92237c4e0f..0eb47f6e65 100644 --- a/src/network/networkd-address.c +++ b/src/network/networkd-address.c @@ -1809,10 +1809,12 @@ static int address_section_verify(Address *address) { address->section->filename, address->section->line); } - if (address->family == AF_INET && in_addr_is_null(address->family, &address->in_addr_peer) && - address->broadcast.s_addr == 0 && address->prefixlen <= 30) - address->broadcast.s_addr = address->in_addr.in.s_addr | htobe32(0xfffffffflu >> address->prefixlen); - else if (address->broadcast.s_addr != 0) { + if (address->family == AF_INET && + in_addr_is_null(address->family, &address->in_addr_peer) && + address->prefixlen <= 30) { + if (address->broadcast.s_addr == 0) + address->broadcast.s_addr = address->in_addr.in.s_addr | htobe32(0xfffffffflu >> address->prefixlen); + } else if (address->broadcast.s_addr != 0) { log_warning("%s: broadcast address is set for IPv6 address or IPv4 address with prefixlength larger than 30. " "Ignoring Broadcast= setting in the [Address] section from line %u.", address->section->filename, address->section->line);