From: Mike Yuan Date: Wed, 8 Jan 2025 11:44:33 +0000 (+0100) Subject: uid-range: make uid_map_search_root() take UIDRangeUsernsMode X-Git-Tag: v258-rc1~1614^2~1 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=a0e3dbdef502558173bbafb7851377c1900b4a0b;p=thirdparty%2Fsystemd.git uid-range: make uid_map_search_root() take UIDRangeUsernsMode --- diff --git a/src/basic/namespace-util.c b/src/basic/namespace-util.c index 6ece5108dfb..85221239877 100644 --- a/src/basic/namespace-util.c +++ b/src/basic/namespace-util.c @@ -624,12 +624,12 @@ int userns_get_base_uid(int userns_fd, uid_t *ret_uid, gid_t *ret_gid) { return r; uid_t uid; - r = uid_map_search_root(pid, "uid_map", &uid); + r = uid_map_search_root(pid, UID_RANGE_USERNS_OUTSIDE, &uid); if (r < 0) return r; gid_t gid; - r = uid_map_search_root(pid, "gid_map", &gid); + r = uid_map_search_root(pid, GID_RANGE_USERNS_OUTSIDE, &gid); if (r < 0) return r; diff --git a/src/basic/uid-range.c b/src/basic/uid-range.c index cbae1bbf78a..99984d8a4e9 100644 --- a/src/basic/uid-range.c +++ b/src/basic/uid-range.c @@ -324,13 +324,13 @@ bool uid_range_equal(const UIDRange *a, const UIDRange *b) { return true; } -int uid_map_search_root(pid_t pid, const char *filename, uid_t *ret) { +int uid_map_search_root(pid_t pid, UIDRangeUsernsMode mode, uid_t *ret) { int r; assert(pid_is_valid(pid)); - assert(filename); + assert(IN_SET(mode, UID_RANGE_USERNS_OUTSIDE, GID_RANGE_USERNS_OUTSIDE)); - const char *p = procfs_file_alloca(pid, filename); + const char *p = procfs_file_alloca(pid, mode == UID_RANGE_USERNS_OUTSIDE ? "uid_map" : "gid_map"); _cleanup_fclose_ FILE *f = fopen(p, "re"); if (!f) { if (errno != ENOENT) diff --git a/src/basic/uid-range.h b/src/basic/uid-range.h index 41ca671dd66..21e5c7a17b4 100644 --- a/src/basic/uid-range.h +++ b/src/basic/uid-range.h @@ -15,7 +15,7 @@ typedef struct UIDRange { size_t n_entries; } UIDRange; -UIDRange *uid_range_free(UIDRange *range); +UIDRange* uid_range_free(UIDRange *range); DEFINE_TRIVIAL_CLEANUP_FUNC(UIDRange*, uid_range_free); int uid_range_add_internal(UIDRange **range, uid_t start, uid_t nr, bool coalesce); @@ -77,4 +77,4 @@ 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, const char *filename, uid_t *ret); +int uid_map_search_root(pid_t pid, UIDRangeUsernsMode mode, uid_t *ret);