From c624143b5950dedc7b210065f0fee53873d396c5 Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Tue, 12 Dec 2023 01:59:34 +0900 Subject: [PATCH] network/nexthop: do not assign invalid ID This also reduces the scope of the iterator. --- src/network/networkd-nexthop.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/network/networkd-nexthop.c b/src/network/networkd-nexthop.c index e04b352747..b10ddc46b8 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) { -- 2.25.1