case 'c':
conf.gecos = pw_checkname(optarg, 1);
break;
- case 'e':
- conf.expire_days = strtonum(optarg, 0, INT_MAX, &errstr);
- if (errstr)
- errx(EX_USAGE, "Invalid expired days: %s", optarg);
- break;
case 'g':
if (which == 0) { /* for user* */
addarg(&arglist, 'g', optarg);
case 'o':
conf.checkduplicate = false;
break;
- case 'p':
- conf.password_days = strtonum(optarg, 0, INT_MAX, &errstr);
- if (errstr)
- errx(EX_USAGE, "Invalid password days: %s", optarg);
- break;
case 'q':
conf.quiet = true;
break;
warnx("Invalid expire days:"
" '%s'; ignoring", q);
}
+ if ((q = unquote(q)) != NULL && isdigit(*q))
+ config.expire_days = atoi(q);
break;
case _UC_PASSWORD:
if ((q = unquote(q)) != NULL) {
errx(EX_OSFILE, "root home `%s' is not a directory", cnf->home);
}
- if (conf.expire_days > 0)
- cnf->expire_days = conf.expire_days;
+ if ((arg = getarg(args, 'e')) != NULL)
+ cnf->expire_days = atoi(arg->val);
if ((arg = getarg(args, 'y')) != NULL)
cnf->nispasswd = arg->val;
- if (conf.password_days > 0)
- cnf->password_days = conf.password_days;
+ if ((arg = getarg(args, 'p')) != NULL && arg->val)
+ cnf->password_days = atoi(arg->val);
if ((arg = getarg(args, 'g')) != NULL) {
if (!*(p = arg->val)) /* Handle empty group list specially */
char *newname;
char *config;
char *gecos;
- int expire_days;
- int password_days;
int fd;
int rootfd;
int which;