]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
userdb: allow dots in username
authorMike Gilbert <floppym@gentoo.org>
Sat, 22 Feb 2020 18:30:48 +0000 (13:30 -0500)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Thu, 27 Feb 2020 07:47:52 +0000 (08:47 +0100)
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

src/shared/json.c
src/shared/user-record.c
src/shared/userdb.c

index e9ae88c7473ed323a0e9cc08a077e42e9a8762ae..e28a5df19e2e4842a33a55e47f0a0e79635efd00 100644 (file)
@@ -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);
index 327cf8da87202535b12bc6436bdb05df131d68b9..ff2cc411430e6e983c6341ead9907a756ee28e78 100644 (file)
@@ -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));
index 1f05cda26ad4ab3943ea67f2dac1463c3f8d1de0..aa46874ed3c56f2606903f732dd71d888745b6a1 100644 (file)
@@ -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(