From: Lennart Poettering Date: Tue, 21 Oct 2025 21:00:46 +0000 (+0200) Subject: nsresource: add constants for the only supported UID range size allocations X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=bcafa70974df1ea1d5a81fa3498512af1394840b;p=thirdparty%2Fsystemd.git nsresource: add constants for the only supported UID range size allocations As requested: https://github.com/systemd/systemd/pull/39322#discussion_r2447366728 --- diff --git a/src/dissect/dissect.c b/src/dissect/dissect.c index 332471a4099..ca69b36c228 100644 --- a/src/dissect/dissect.c +++ b/src/dissect/dissect.c @@ -2302,7 +2302,7 @@ static int run(int argc, char *argv[]) { /* Don't run things in private userns, if the mount shall be attached to the host */ if (!IN_SET(arg_action, ACTION_MOUNT, ACTION_WITH)) { - userns_fd = nsresource_allocate_userns(/* name= */ NULL, UINT64_C(0x10000)); /* allocate 64K users by default */ + userns_fd = nsresource_allocate_userns(/* name= */ NULL, NSRESOURCE_UIDS_64K); /* allocate 64K users by default */ if (userns_fd < 0) return log_error_errno(userns_fd, "Failed to allocate user namespace with 64K users: %m"); } diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c index 3e4565e4a28..5de826c44a9 100644 --- a/src/nspawn/nspawn.c +++ b/src/nspawn/nspawn.c @@ -6007,7 +6007,7 @@ static int run(int argc, char *argv[]) { goto finish; } - userns_fd = nsresource_allocate_userns(userns_name, UINT64_C(0x10000)); + userns_fd = nsresource_allocate_userns(userns_name, NSRESOURCE_UIDS_64K); /* allocate 64K UIDs */ if (userns_fd < 0) { r = log_error_errno(userns_fd, "Failed to allocate user namespace with 64K users: %m"); goto finish; @@ -6019,7 +6019,7 @@ static int run(int argc, char *argv[]) { goto finish; } - arg_uid_range = UINT32_C(0x10000); + arg_uid_range = NSRESOURCE_UIDS_64K; } if (arg_directory) { diff --git a/src/shared/nsresource.h b/src/shared/nsresource.h index c06025761a5..136b1f85ac1 100644 --- a/src/shared/nsresource.h +++ b/src/shared/nsresource.h @@ -3,6 +3,10 @@ #include "shared-forward.h" +/* Helpful constants for the only numbers of UIDs that can currently be allocated */ +#define NSRESOURCE_UIDS_64K 0x10000U +#define NSRESOURCE_UIDS_1 1U + int nsresource_allocate_userns(const char *name, uint64_t size); int nsresource_register_userns(const char *name, int userns_fd); int nsresource_add_mount(int userns_fd, int mount_fd);