mirror of
https://github.com/systemd/systemd.git
synced 2025-03-13 00:58:27 +03:00
network: fix verification for broadcast address
Fixes a bug caused by fe841414ef157f7f01d339c5d5730126e7b5fe0a.
This commit is contained in:
parent
df8aa08642
commit
05a7023d24
@ -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);
|
||||
|
Loading…
x
Reference in New Issue
Block a user