user-util: switch from utmp to utmpx
authorLennart Poettering <lennart@poettering.net>
Fri, 6 Sep 2024 11:20:11 +0000 (13:20 +0200)
committerLennart Poettering <lennart@poettering.net>
Fri, 6 Sep 2024 11:54:09 +0000 (13:54 +0200)
We generally use utmpx instead of utmp (both are actually identical on
Linux, but utmpx is POSIX, while utmp is not). Let's fix one left-over
case.

UT_NAMESIZE does not exist in utmpx world, it has no direct counterpart,
hence let's just sizeof_field() to determine the size of the actual
field. (which comes to the same result of course: 32).

src/basic/user-util.c

index 858d712189631a1388c0e83ab88c39518fa46023..6de5e4705ebc043a98a7255ff63408f21aff4fcc 100644 (file)
@@ -9,7 +9,7 @@
 #include <sys/file.h>
 #include <sys/stat.h>
 #include <unistd.h>
-#include <utmp.h>
+#include <utmpx.h>
 
 #include "sd-messages.h"
 
@@ -802,7 +802,7 @@ bool valid_user_group_name(const char *u, ValidUserFlags flags) {
                         return false;
                 if (l > NAME_MAX) /* must fit in a filename: 255 */
                         return false;
-                if (l > UT_NAMESIZE - 1) /* must fit in utmp: 31 */
+                if (l > sizeof_field(struct utmpx, ut_user) - 1) /* must fit in utmp: 31 */
                         return false;
         }