]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
uid-range: add uid_range_base() that returns the lowest entry
authorLennart Poettering <lennart@amutable.com>
Thu, 19 Feb 2026 14:02:48 +0000 (15:02 +0100)
committerLennart Poettering <lennart@amutable.com>
Thu, 19 Feb 2026 14:05:14 +0000 (15:05 +0100)
src/basic/uid-range.c
src/basic/uid-range.h

index 81e736ef5af0dea2f66e3a478f48f53eb4a81268..c498b5afe1f83bfe373b924288c35d72e0e9fa3a 100644 (file)
@@ -379,3 +379,18 @@ int uid_map_search_root(pid_t pid, UIDRangeUsernsMode mode, uid_t *ret) {
                 }
         }
 }
+
+uid_t uid_range_base(const UIDRange *range) {
+
+        /* Returns the lowest UID in the range (notw that elements are sorted, hence we just need to look at
+         * the first one that is populated. */
+
+        if (uid_range_is_empty(range))
+                return UID_INVALID;
+
+        FOREACH_ARRAY(e, range->entries, range->n_entries)
+                if (e->nr > 0)
+                        return e->start;
+
+        return UID_INVALID;
+}
index b74ab9d3323df5706000c543f0cee4d4aac08014..c28b02fa7d16a7e33616473e7205429a2312a205 100644 (file)
@@ -54,3 +54,5 @@ int uid_range_load_userns_by_fd(int userns_fd, UIDRangeUsernsMode mode, UIDRange
 bool uid_range_overlaps(const UIDRange *range, uid_t start, uid_t nr);
 
 int uid_map_search_root(pid_t pid, UIDRangeUsernsMode mode, uid_t *ret);
+
+uid_t uid_range_base(const UIDRange *range);