chiark / gitweb /
sysusers: don't allow user names longer than UT_NAMESIZE
[elogind.git] / src / sysusers / sysusers.c
index 1765f31a3af32385155e4a940971902c50ba6d70..40a669725e7fff75b6cd2675498a14a0039ee447 100644 (file)
@@ -24,6 +24,7 @@
 #include <grp.h>
 #include <shadow.h>
 #include <getopt.h>
+#include <utmp.h>
 
 #include "util.h"
 #include "hashmap.h"
@@ -1095,6 +1096,9 @@ static bool valid_user_group_name(const char *u) {
         if ((size_t) (i-u) > (size_t) sz)
                 return false;
 
+        if ((size_t) (i-u) > UT_NAMESIZE - 1)
+                return false;
+
         return true;
 }