summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Gilbert <floppym@gentoo.org>2020-02-22 13:30:48 -0500
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2020-02-27 08:47:52 +0100
commit19bb96759a915c4801e71b58f064f0e58a89d788 (patch)
tree7afba8d955c4e3d7bb2ccb759d23426a11487c95
parent2a5180945a103067aa2b8211bad005a743d81c2a (diff)
downloadsystemd-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.c2
-rw-r--r--src/shared/user-record.c2
-rw-r--r--src/shared/userdb.c8
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(