time after the parsing of options. -U used to be allowed after -p or -L,
but not before.
2007-11-17 Nicolas François <nicolas.francois@centraliens.net>
- * src/usermod.c: Make usermod -d and -m work independant of the
+ * src/usermod.c: Validate that two of the -L, -p, and -U options
+ are not used at the same time after the parsing of options. -U
+ used to be allowed after -p or -L, but not before.
+
+2007-11-17 Nicolas François <nicolas.francois@centraliens.net>
+
+ * src/usermod.c: Make usermod -d and -m work independent of the
argument order. Thanks to Justin Pryzby <jpryzby+d@quoininc.com>
for the patch. This fixes Debian's bug #451518.
user_newname = optarg;
break;
case 'L':
- if (Uflg || pflg)
- usage ();
-
Lflg++;
break;
case 'm':
oflg++;
break;
case 'p':
- if (Lflg || Uflg)
- usage ();
-
user_pass = optarg;
pflg++;
break;
uflg++;
break;
case 'U':
- if (Lflg && pflg)
- usage ();
-
Uflg++;
break;
default:
exit (E_USAGE);
}
+ if ((Lflg && (pflg || Uflg)) || (pflg && Uflg)) {
+ fprintf (stderr,
+ _("%s: the -L, -p, and -U flags are exclusive\n"),
+ Prog);
+ usage ();
+ exit (E_USAGE);
+ }
+
if (mflg && !dflg) {
fprintf (stderr,
_("%s: -m flag is ONLY allowed with the -d flag\n"),