]> granicus.if.org Git - shadow/commitdiff
* src/usermod.c (process_flags): Report usage if no options are
authornekral-guest <nekral-guest@5a98b0ae-9ef6-0310-add3-de5d479b70d7>
Thu, 14 Jul 2011 13:29:10 +0000 (13:29 +0000)
committernekral-guest <nekral-guest@5a98b0ae-9ef6-0310-add3-de5d479b70d7>
Thu, 14 Jul 2011 13:29:10 +0000 (13:29 +0000)
provided. Update the error message.
* src/usermod.c (process_flags): Check option compatibility and
dependency before options are discarded when no changes are
requested.

ChangeLog
src/usermod.c

index 1329c26897e003d4be9a198f9a7868e33d7bf00a..7457e740dbaff0180cd2d33b32a0d9bd95125b96 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -4,6 +4,11 @@
        * src/usermod.c (move_home): It is always an error to use -m if
        the new home directory already exist (independently from the
        existence of the old home directory did not exist)
+       * src/usermod.c (process_flags): Report usage if no options are
+       provided. Update the error message.
+       * src/usermod.c (process_flags): Check option compatibility and
+       dependency before options are discarded when no changes are
+       requested.
 
 2011-07-08  Nicolas François  <nicolas.francois@centraliens.net>
 
index eaf578a48f7f76c47beb671783638f8a57b7dd5d..059d172a299980cb99b3576ebaec18bd39385e97 100644 (file)
@@ -1053,10 +1053,37 @@ static void process_flags (int argc, char **argv)
                }
        }
 
-
        if (!anyflag) {
-               fprintf (stderr, _("%s: no flags given\n"), Prog);
-               exit (E_USAGE);
+               fprintf (stderr, _("%s: no options\n"), Prog);
+               usage (E_USAGE);
+       }
+
+       if (aflg && (!Gflg)) {
+               fprintf (stderr,
+                        _("%s: %s flag is only allowed with the %s flag\n"),
+                        Prog, "-a", "-G");
+               usage (E_USAGE);
+       }
+
+       if ((Lflg && (pflg || Uflg)) || (pflg && Uflg)) {
+               fprintf (stderr,
+                        _("%s: the -L, -p, and -U flags are exclusive\n"),
+                        Prog);
+               usage (E_USAGE);
+       }
+
+       if (oflg && !uflg) {
+               fprintf (stderr,
+                        _("%s: %s flag is only allowed with the %s flag\n"),
+                        Prog, "-o", "-u");
+               usage (E_USAGE);
+       }
+
+       if (mflg && !dflg) {
+               fprintf (stderr,
+                        _("%s: %s flag is only allowed with the %s flag\n"),
+                        Prog, "-m", "-d");
+               usage (E_USAGE);
        }
 
        if (user_newid == user_id) {
@@ -1106,38 +1133,6 @@ static void process_flags (int argc, char **argv)
                exit (E_USAGE);
        }
 
-       if (aflg && (!Gflg)) {
-               fprintf (stderr,
-                        _("%s: %s flag is only allowed with the %s flag\n"),
-                        Prog, "-a", "-G");
-               usage (E_USAGE);
-               exit (E_USAGE);
-       }
-
-       if ((Lflg && (pflg || Uflg)) || (pflg && Uflg)) {
-               fprintf (stderr,
-                        _("%s: the -L, -p, and -U flags are exclusive\n"),
-                        Prog);
-               usage (E_USAGE);
-               exit (E_USAGE);
-       }
-
-       if (oflg && !uflg) {
-               fprintf (stderr,
-                        _("%s: %s flag is only allowed with the %s flag\n"),
-                        Prog, "-o", "-u");
-               usage (E_USAGE);
-               exit (E_USAGE);
-       }
-
-       if (mflg && !dflg) {
-               fprintf (stderr,
-                        _("%s: %s flag is only allowed with the %s flag\n"),
-                        Prog, "-m", "-d");
-               usage (E_USAGE);
-               exit (E_USAGE);
-       }
-
        /* local, no need for xgetpwnam */
        if (lflg && (getpwnam (user_newname) != NULL)) {
                fprintf (stderr,