From: Yu Watanabe Date: Mon, 11 Dec 2023 16:59:34 +0000 (+0900) Subject: network/nexthop: do not assign invalid ID X-Git-Tag: v256-rc1~1485^2~7 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=c624143b5950dedc7b210065f0fee53873d396c5;p=thirdparty%2Fsystemd.git network/nexthop: do not assign invalid ID This also reduces the scope of the iterator. --- diff --git a/src/network/networkd-nexthop.c b/src/network/networkd-nexthop.c index e04b3527470..b10ddc46b8c 100644 --- a/src/network/networkd-nexthop.c +++ b/src/network/networkd-nexthop.c @@ -309,7 +309,6 @@ static int nexthop_add(Manager *manager, Link *link, NextHop *nexthop) { static int nexthop_acquire_id(Manager *manager, NextHop *nexthop) { _cleanup_set_free_ Set *ids = NULL; Network *network; - uint32_t id; int r; assert(manager); @@ -337,16 +336,17 @@ static int nexthop_acquire_id(Manager *manager, NextHop *nexthop) { } } - for (id = 1; id < UINT32_MAX; id++) { + for (uint32_t id = 1; id < UINT32_MAX; id++) { if (manager_get_nexthop_by_id(manager, id, NULL) >= 0) continue; if (set_contains(ids, UINT32_TO_PTR(id))) continue; - break; + + nexthop->id = id; + return 0; } - nexthop->id = id; - return 0; + return -EBUSY; } static void log_nexthop_debug(const NextHop *nexthop, const char *str, const Link *link) {