From aac6673f026229bdad3f57758560b1de186b043c Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Mon, 18 Jan 2021 00:44:14 +0900 Subject: [PATCH] network: address-pool: also check conflicts with foreign addresses Fixes CI issue found in https://github.com/systemd/systemd-centos-ci/pull/334. --- src/network/networkd-address-pool.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/network/networkd-address-pool.c b/src/network/networkd-address-pool.c index a9f8872760..c60ece5db8 100644 --- a/src/network/networkd-address-pool.c +++ b/src/network/networkd-address-pool.c @@ -107,6 +107,15 @@ static bool address_pool_prefix_is_taken( return true; } + /* Don't clash with assigned foreign addresses */ + SET_FOREACH(a, l->addresses_foreign) { + if (a->family != p->family) + continue; + + if (in_addr_prefix_intersect(p->family, u, prefixlen, &a->in_addr, a->prefixlen)) + return true; + } + /* Don't clash with addresses already pulled from the pool, but not assigned yet */ SET_FOREACH(a, l->pool_addresses) { if (a->family != p->family) -- 2.25.1