From: Yu Watanabe Date: Thu, 27 Jan 2022 17:25:37 +0000 (+0900) Subject: sd-dhcp-server: do not assign address reserved for static leases to non-matching... X-Git-Tag: v251-rc1~396^2~8 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=bd1a3eb65b9e308028c18e1ed7ffde474a3b1244;p=thirdparty%2Fsystemd.git sd-dhcp-server: do not assign address reserved for static leases to non-matching clients This fix the root cause of the issue #22253. --- diff --git a/src/libsystemd-network/sd-dhcp-server.c b/src/libsystemd-network/sd-dhcp-server.c index 2f429020bbc..904298ebb04 100644 --- a/src/libsystemd-network/sd-dhcp-server.c +++ b/src/libsystemd-network/sd-dhcp-server.c @@ -801,6 +801,9 @@ static bool address_is_in_pool(sd_dhcp_server *server, be32_t address) { be32toh(address) >= (be32toh(server->subnet) | (server->pool_offset + server->pool_size))) return false; + if (hashmap_contains(server->static_leases_by_address, UINT32_TO_PTR(address))) + return false; + return true; }