]> git.ipfire.org Git - thirdparty/shadow.git/commitdiff
src/: Recommend --badname only if it is useful
authorAlejandro Colomar <alx@kernel.org>
Sat, 31 Aug 2024 09:55:27 +0000 (11:55 +0200)
committerSerge Hallyn <serge@hallyn.com>
Sun, 1 Sep 2024 13:17:11 +0000 (08:17 -0500)
(Review with -w (--ignore-all-space).)

Closes: <https://github.com/shadow-maint/shadow/issues/1067>
Reported-by: Anselm Schüler <mail@anselmschueler.com>
Signed-off-by: Alejandro Colomar <alx@kernel.org>
src/newusers.c
src/pwck.c
src/useradd.c
src/usermod.c

index bd24f7c72023f9a16008ef73e9276a007d719f81..044ce32e1e4e02a18f4218d498cf2afb31c320d2 100644 (file)
@@ -386,10 +386,16 @@ static int add_user (const char *name, uid_t uid, gid_t gid)
        struct passwd pwent;
 
        /* Check if this is a valid user name */
-       if (!is_valid_user_name (name)) {
-               fprintf (stderr,
-                        _("%s: invalid user name '%s': use --badname to ignore\n"),
-                        Prog, name);
+       if (!is_valid_user_name(name)) {
+               if (errno == EINVAL) {
+                       fprintf(stderr,
+                               _("%s: invalid user name '%s': use --badname to ignore\n"),
+                               Prog, name);
+               } else {
+                       fprintf(stderr,
+                               _("%s: invalid user name '%s'\n"),
+                               Prog, name);
+               }
                return -1;
        }
 
index 70ff5e68c16b6962ddf7828b221dfb359e510308..2df5b6c6fe8d2094a47e788e4f5a51aaf612751e 100644 (file)
@@ -471,9 +471,14 @@ static void check_pw_file (int *errors, bool *changed)
                 * Check for invalid usernames.  --marekm
                 */
 
-               if (!is_valid_user_name (pwd->pw_name)) {
-                       printf (_("invalid user name '%s': use --badname to ignore\n"),
-                                       pwd->pw_name);
+               if (!is_valid_user_name(pwd->pw_name)) {
+                       if (errno == EINVAL) {
+                               printf(_("invalid user name '%s': use --badname to ignore\n"),
+                                      pwd->pw_name);
+                       } else {
+                               printf(_("invalid user name '%s'\n"),
+                                      pwd->pw_name);
+                       }
                        *errors += 1;
                }
 
index dff647af72eb0e04cafa447ffc8e2cad7d2e3dc9..02c500d0c28fbe0d5b18d1be4ec0bb33161e728b 100644 (file)
@@ -1523,10 +1523,16 @@ static void process_flags (int argc, char **argv)
                }
 
                user_name = argv[optind];
-               if (!is_valid_user_name (user_name)) {
-                       fprintf (stderr,
-                                _("%s: invalid user name '%s': use --badname to ignore\n"),
-                                Prog, user_name);
+               if (!is_valid_user_name(user_name)) {
+                       if (errno == EINVAL) {
+                               fprintf(stderr,
+                                       _("%s: invalid user name '%s': use --badname to ignore\n"),
+                                       Prog, user_name);
+                       } else {
+                               fprintf(stderr,
+                                       _("%s: invalid user name '%s'\n"),
+                                       Prog, user_name);
+                       }
 #ifdef WITH_AUDIT
                        audit_logger (AUDIT_ADD_USER, Prog,
                                      "adding user",
index c5d7bbe51cd786fe4d3b799277591772f591c893..0f7f1e23520443ee1a24e17fd9a53ae6bd5ec65e 100644 (file)
@@ -1116,10 +1116,16 @@ process_flags(int argc, char **argv)
                                usage (E_SUCCESS);
                                /*@notreached@*/break;
                        case 'l':
-                               if (!is_valid_user_name (optarg)) {
-                                       fprintf (stderr,
-                                                _("%s: invalid user name '%s': use --badname to ignore\n"),
-                                                Prog, optarg);
+                               if (!is_valid_user_name(optarg)) {
+                                       if (errno == EINVAL) {
+                                               fprintf(stderr,
+                                                       _("%s: invalid user name '%s': use --badname to ignore\n"),
+                                                       Prog, optarg);
+                                       } else {
+                                               fprintf(stderr,
+                                                       _("%s: invalid user name '%s'\n"),
+                                                       Prog, optarg);
+                                       }
                                        exit (E_BAD_ARG);
                                }
                                lflg = true;