diff options
author | Mike Gilbert <floppym@gentoo.org> | 2020-02-22 13:30:48 -0500 |
---|---|---|
committer | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2020-02-27 08:47:52 +0100 |
commit | 19bb96759a915c4801e71b58f064f0e58a89d788 (patch) | |
tree | 7afba8d955c4e3d7bb2ccb759d23426a11487c95 | |
parent | 2a5180945a103067aa2b8211bad005a743d81c2a (diff) | |
download | systemd-19bb96759a915c4801e71b58f064f0e58a89d788.tar.gz |
userdb: allow dots in username
This prevents an error in pam_systemd when logging in.
sshd[2623165]: pam_unix(sshd:session): session opened for user tony.stark(uid=10001) by (uid=0)
sshd[2623165]: pam_systemd(sshd:session): Failed to get user record: Invalid argument
Bug: https://bugs.gentoo.org/708824
-rw-r--r-- | src/shared/json.c | 2 | ||||
-rw-r--r-- | src/shared/user-record.c | 2 | ||||
-rw-r--r-- | src/shared/userdb.c | 8 |
3 files changed, 6 insertions, 6 deletions
diff --git a/src/shared/json.c b/src/shared/json.c index e9ae88c747..e28a5df19e 100644 --- a/src/shared/json.c +++ b/src/shared/json.c @@ -4107,7 +4107,7 @@ int json_dispatch_user_group_name(const char *name, JsonVariant *variant, JsonDi return json_log(variant, flags, SYNTHETIC_ERRNO(EINVAL), "JSON field '%s' is not a string.", strna(name)); n = json_variant_string(variant); - if (!valid_user_group_name(n)) + if (!valid_user_group_name_compat(n)) return json_log(variant, flags, SYNTHETIC_ERRNO(EINVAL), "JSON field '%s' is not a valid user/group name.", strna(name)); r = free_and_strdup(s, n); diff --git a/src/shared/user-record.c b/src/shared/user-record.c index 327cf8da87..ff2cc41143 100644 --- a/src/shared/user-record.c +++ b/src/shared/user-record.c @@ -600,7 +600,7 @@ int json_dispatch_user_group_list(const char *name, JsonVariant *variant, JsonDi if (!json_variant_is_string(e)) return json_log(e, flags, SYNTHETIC_ERRNO(EINVAL), "JSON array element is not a string."); - if (!valid_user_group_name(json_variant_string(e))) + if (!valid_user_group_name_compat(json_variant_string(e))) return json_log(e, flags, SYNTHETIC_ERRNO(EINVAL), "JSON array element is not a valid user/group name: %s", json_variant_string(e)); r = strv_extend(&l, json_variant_string(e)); diff --git a/src/shared/userdb.c b/src/shared/userdb.c index 1f05cda26a..aa46874ed3 100644 --- a/src/shared/userdb.c +++ b/src/shared/userdb.c @@ -587,7 +587,7 @@ int userdb_by_name(const char *name, UserDBFlags flags, UserRecord **ret) { _cleanup_(json_variant_unrefp) JsonVariant *query = NULL; int r; - if (!valid_user_group_name(name)) + if (!valid_user_group_name_compat(name)) return -EINVAL; r = json_build(&query, JSON_BUILD_OBJECT( @@ -797,7 +797,7 @@ int groupdb_by_name(const char *name, UserDBFlags flags, GroupRecord **ret) { _cleanup_(json_variant_unrefp) JsonVariant *query = NULL; int r; - if (!valid_user_group_name(name)) + if (!valid_user_group_name_compat(name)) return -EINVAL; r = json_build(&query, JSON_BUILD_OBJECT( @@ -990,7 +990,7 @@ int membershipdb_by_user(const char *name, UserDBFlags flags, UserDBIterator **r assert(ret); - if (!valid_user_group_name(name)) + if (!valid_user_group_name_compat(name)) return -EINVAL; r = json_build(&query, JSON_BUILD_OBJECT( @@ -1033,7 +1033,7 @@ int membershipdb_by_group(const char *name, UserDBFlags flags, UserDBIterator ** assert(ret); - if (!valid_user_group_name(name)) + if (!valid_user_group_name_compat(name)) return -EINVAL; r = json_build(&query, JSON_BUILD_OBJECT( |