From: Mike Yuan Date: Mon, 8 Apr 2024 11:38:29 +0000 (+0800) Subject: uid-range: place 'ret' param at last X-Git-Tag: v256-rc1~265^2~3 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=7fe28d83860c7f8b50a8fcb3b2c50e3945f3cb41;p=thirdparty%2Fsystemd.git uid-range: place 'ret' param at last --- diff --git a/src/basic/uid-range.c b/src/basic/uid-range.c index 1f2e76aaa14..a7658811ece 100644 --- a/src/basic/uid-range.c +++ b/src/basic/uid-range.c @@ -205,7 +205,7 @@ int uid_map_read_one(FILE *f, uid_t *ret_base, uid_t *ret_shift, uid_t *ret_rang return 0; } -int uid_range_load_userns(UIDRange **ret, const char *path, UIDRangeUsernsMode mode) { +int uid_range_load_userns(const char *path, UIDRangeUsernsMode mode, UIDRange **ret) { _cleanup_(uid_range_freep) UIDRange *range = NULL; _cleanup_fclose_ FILE *f = NULL; int r; @@ -216,9 +216,9 @@ int uid_range_load_userns(UIDRange **ret, const char *path, UIDRangeUsernsMode m * * To simplify things this will modify the passed array in case of later failure. */ - assert(ret); assert(mode >= 0); assert(mode < _UID_RANGE_USERNS_MODE_MAX); + assert(ret); if (!path) path = IN_SET(mode, UID_RANGE_USERNS_INSIDE, UID_RANGE_USERNS_OUTSIDE) ? "/proc/self/uid_map" : "/proc/self/gid_map"; @@ -318,7 +318,7 @@ int uid_range_load_userns_by_fd(int userns_fd, UIDRangeUsernsMode mode, UIDRange pid, IN_SET(mode, UID_RANGE_USERNS_INSIDE, UID_RANGE_USERNS_OUTSIDE) ? "uid_map" : "gid_map"); - return uid_range_load_userns(ret, p, mode); + return uid_range_load_userns(p, mode, ret); } bool uid_range_overlaps(const UIDRange *range, uid_t start, uid_t nr) { diff --git a/src/basic/uid-range.h b/src/basic/uid-range.h index 48dfebbf02b..1f687b2713e 100644 --- a/src/basic/uid-range.h +++ b/src/basic/uid-range.h @@ -72,7 +72,7 @@ typedef enum UIDRangeUsernsMode { _UID_RANGE_USERNS_MODE_INVALID = -EINVAL, } UIDRangeUsernsMode; -int uid_range_load_userns(UIDRange **ret, const char *path, UIDRangeUsernsMode mode); +int uid_range_load_userns(const char *path, UIDRangeUsernsMode mode, UIDRange **ret); int uid_range_load_userns_by_fd(int userns_fd, UIDRangeUsernsMode mode, UIDRange **ret); bool uid_range_overlaps(const UIDRange *range, uid_t start, uid_t nr); diff --git a/src/core/manager.c b/src/core/manager.c index b333be9afd8..fe7dc19672a 100644 --- a/src/core/manager.c +++ b/src/core/manager.c @@ -4805,7 +4805,7 @@ static int short_uid_range(const char *path) { /* Taint systemd if we the UID range assigned to this environment doesn't at least cover 0…65534, * i.e. from root to nobody. */ - r = uid_range_load_userns(&p, path, UID_RANGE_USERNS_INSIDE); + r = uid_range_load_userns(path, UID_RANGE_USERNS_INSIDE, &p); if (ERRNO_IS_NEG_NOT_SUPPORTED(r)) return false; if (r < 0) diff --git a/src/libsystemd/sd-device/device-monitor.c b/src/libsystemd/sd-device/device-monitor.c index 408cd175818..a7ef03abac2 100644 --- a/src/libsystemd/sd-device/device-monitor.c +++ b/src/libsystemd/sd-device/device-monitor.c @@ -473,7 +473,7 @@ static bool check_sender_uid(sd_device_monitor *m, uid_t uid) { return true; if (!m->mapped_userns_uid_range) { - r = uid_range_load_userns(&m->mapped_userns_uid_range, NULL, UID_RANGE_USERNS_INSIDE); + r = uid_range_load_userns(/* path = */ NULL, UID_RANGE_USERNS_INSIDE, &m->mapped_userns_uid_range); if (r < 0) log_monitor_errno(m, r, "Failed to load UID ranges mapped to the current user namespace, ignoring: %m"); } diff --git a/src/nsresourced/nsresourcework.c b/src/nsresourced/nsresourcework.c index 9e68249ea81..6bd2fed06f4 100644 --- a/src/nsresourced/nsresourcework.c +++ b/src/nsresourced/nsresourcework.c @@ -453,7 +453,7 @@ static int allocate_now( assert_not_reached(); } - r = uid_range_load_userns(&valid_range, /* path= */ NULL, UID_RANGE_USERNS_INSIDE); + r = uid_range_load_userns(/* path= */ NULL, UID_RANGE_USERNS_INSIDE, &valid_range); if (r < 0) return r; diff --git a/src/test/test-uid-range.c b/src/test/test-uid-range.c index c31fb30e7ee..6041d084906 100644 --- a/src/test/test-uid-range.c +++ b/src/test/test-uid-range.c @@ -123,7 +123,7 @@ TEST(load_userns) { _cleanup_fclose_ FILE *f = NULL; int r; - r = uid_range_load_userns(&p, NULL, UID_RANGE_USERNS_INSIDE); + r = uid_range_load_userns(NULL, UID_RANGE_USERNS_INSIDE, &p); if (ERRNO_IS_NEG_NOT_SUPPORTED(r)) return; @@ -146,7 +146,7 @@ TEST(load_userns) { p = uid_range_free(p); - assert_se(uid_range_load_userns(&p, fn, UID_RANGE_USERNS_INSIDE) >= 0); + assert_se(uid_range_load_userns(fn, UID_RANGE_USERNS_INSIDE, &p) >= 0); assert_se(uid_range_contains(p, 0)); assert_se(uid_range_contains(p, 19)); diff --git a/src/userdb/userdbctl.c b/src/userdb/userdbctl.c index c16e44d6b64..f98acce29ec 100644 --- a/src/userdb/userdbctl.c +++ b/src/userdb/userdbctl.c @@ -428,7 +428,7 @@ static int display_user(int argc, char *argv[], void *userdata) { _cleanup_(uid_range_freep) UIDRange *uid_range = NULL; int boundary_lines, uid_map_lines; - r = uid_range_load_userns(&uid_range, "/proc/self/uid_map", UID_RANGE_USERNS_INSIDE); + r = uid_range_load_userns(/* path = */ NULL, UID_RANGE_USERNS_INSIDE, &uid_range); if (r < 0) log_debug_errno(r, "Failed to load /proc/self/uid_map, ignoring: %m"); @@ -731,7 +731,7 @@ static int display_group(int argc, char *argv[], void *userdata) { _cleanup_(uid_range_freep) UIDRange *gid_range = NULL; int boundary_lines, gid_map_lines; - r = uid_range_load_userns(&gid_range, "/proc/self/gid_map", UID_RANGE_USERNS_INSIDE); + r = uid_range_load_userns(/* path = */ NULL, GID_RANGE_USERNS_INSIDE, &gid_range); if (r < 0) log_debug_errno(r, "Failed to load /proc/self/gid_map, ignoring: %m");