1
0
mirror of https://github.com/systemd/systemd.git synced 2025-03-09 12:58:26 +03:00

basic/user-util: return -ESRCH if passwd/group are missing

This commit is contained in:
Zbigniew Jędrzejewski-Szmek 2023-05-23 12:07:13 +02:00
parent 2223a02580
commit c42bac6a60

View File

@ -287,7 +287,9 @@ int get_user_creds(
p = getpwnam(*username);
}
if (!p) {
r = errno_or_else(ESRCH);
/* getpwnam() may fail with ENOENT if /etc/passwd is missing.
* For us that is equivalent to the name not being defined. */
r = IN_SET(errno, 0, ENOENT) ? -ESRCH : -errno;
/* If the user requested that we only synthesize as fallback, do so now */
if (FLAGS_SET(flags, USER_CREDS_PREFER_NSS)) {
@ -381,7 +383,9 @@ int get_group_creds(const char **groupname, gid_t *gid, UserCredsFlags flags) {
}
if (!g)
return errno_or_else(ESRCH);
/* getgrnam() may fail with ENOENT if /etc/group is missing.
* For us that is equivalent to the name not being defined. */
return IN_SET(errno, 0, ENOENT) ? -ESRCH : -errno;
if (gid) {
if (!gid_is_valid(g->gr_gid))