From: Alejandro Colomar Date: Sun, 15 Mar 2026 14:34:09 +0000 (+0100) Subject: lib/: find_free_range(): Set errno on error X-Git-Url: http://git.ipfire.org/gitweb/?a=commitdiff_plain;h=403910a462edc2568f0f8ad40425fcebf0d041cd;p=thirdparty%2Fshadow.git lib/: find_free_range(): Set errno on error Signed-off-by: Alejandro Colomar --- diff --git a/lib/find_new_sub_gids.c b/lib/find_new_sub_gids.c index 591fe2df2..f858c1c1c 100644 --- a/lib/find_new_sub_gids.c +++ b/lib/find_new_sub_gids.c @@ -44,10 +44,9 @@ int find_new_sub_gids (id_t *range_start, unsigned long *range_count) } start = sub_gid_find_free_range(min, max, count); - if (start == -1) { - errno = EUSERS; + if (start == -1) return -1; - } + *range_start = start; *range_count = count; return 0; diff --git a/lib/find_new_sub_uids.c b/lib/find_new_sub_uids.c index 8521e802c..02675b0f9 100644 --- a/lib/find_new_sub_uids.c +++ b/lib/find_new_sub_uids.c @@ -44,10 +44,9 @@ int find_new_sub_uids (id_t *range_start, unsigned long *range_count) } start = sub_uid_find_free_range(min, max, count); - if (start == -1) { - errno = EUSERS; + if (start == -1) return -1; - } + *range_start = start; *range_count = count; return 0; diff --git a/lib/subordinateio.c b/lib/subordinateio.c index c8dcb2ad5..33c99f957 100644 --- a/lib/subordinateio.c +++ b/lib/subordinateio.c @@ -336,8 +336,10 @@ find_free_range(struct commonio_db *db, id_t min, id_t max, unsigned long count) const struct subordinate_range *range; /* When given invalid parameters fail */ - if ((count == 0) || (max < min)) - goto fail; + if ((count == 0) || (max < min)) { + errno = ERANGE; + return -1; + } /* Sort by range then by owner */ commonio_sort (db, subordinate_range_cmp); @@ -373,6 +375,7 @@ find_free_range(struct commonio_db *db, id_t min, id_t max, unsigned long count) if (((max - low) + 1) >= count) return low; fail: + errno = EUSERS; return -1; }