]> git.ipfire.org Git - thirdparty/shadow.git/commitdiff
src/login.c: main(): Use login_name_max_size()
authorAlejandro Colomar <alx@kernel.org>
Mon, 13 May 2024 23:13:18 +0000 (01:13 +0200)
committerIker Pedrosa <ikerpedrosam@gmail.com>
Tue, 21 May 2024 11:26:41 +0000 (13:26 +0200)
Instead of raw sysconf(_SC_LOGIN_NAME_MAX) calls, which was being used
without error handling.

Fixes: 3b7cc053872c ("lib: replace `USER_NAME_MAX_LENGTH` macro")
Signed-off-by: Alejandro Colomar <alx@kernel.org>
src/login.c

index a862c6bdb97c2998858793e576ea1c77c3ea79d2..9fed7b38511a54bc09a497f3ad4d1b189dc8765b 100644 (file)
@@ -27,6 +27,7 @@
 
 #include "alloc.h"
 #include "attr.h"
+#include "chkname.h"
 #include "defines.h"
 #include "faillog.h"
 #include "failure.h"
@@ -573,8 +574,9 @@ int main (int argc, char **argv)
        }
 #ifdef RLOGIN
        if (rflg) {
-               size_t  max_size = sysconf(_SC_LOGIN_NAME_MAX);
+               size_t  max_size;
 
+               max_size = login_name_max_size();
                assert (NULL == username);
                username = XMALLOC(max_size, char);
                username[max_size - 1] = '\0';
@@ -882,8 +884,9 @@ int main (int argc, char **argv)
 
                failed = false; /* haven't failed authentication yet */
                if (NULL == username) { /* need to get a login id */
-                       size_t  max_size = sysconf(_SC_LOGIN_NAME_MAX);
+                       size_t  max_size;
 
+                       max_size = login_name_max_size();
                        if (subroot) {
                                closelog ();
                                exit (1);