Do not try to set password on group if the group is added as a consequence of

of creating a user (regression from r285136)

Reported by:	Fabian Keil <fk@fabiankeil.de>
This commit is contained in:
Baptiste Daroussin 2015-07-09 14:14:44 +00:00
parent b2b5507779
commit 0fc58d1446
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=285318
4 changed files with 13 additions and 1 deletions

View File

@ -215,6 +215,7 @@ main(int argc, char *argv[])
if (mode == -1 || which == -1)
cmdhelp(mode, which);
conf.which = which;
/*
* We know which mode we're in and what we're about to do, so now
* let's dispatch the remaining command line args in a genric way.

View File

@ -200,7 +200,7 @@ pw_group(int mode, char *name, long id, struct cargs * args)
* software.
*/
if (conf.fd != -1)
if (conf.which == W_GROUP && conf.fd != -1)
set_passwd(grp, mode == M_UPDATE);
if (((arg = getarg(args, 'M')) != NULL ||

View File

@ -86,6 +86,7 @@ struct pwconf {
char *newname;
char *config;
int fd;
int which;
bool dryrun;
bool pretty;
bool v7;

View File

@ -231,6 +231,15 @@ user_add_invalid_group_entry_body() {
atf_check -s exit:1 -e match:"Invalid group entry" ${PW} useradd foo2
}
atf_test_case user_add_password_from_h
user_add_password_from_h_body() {
populate_etc_skel
atf_check -s exit:0 ${PW} useradd test -h 0 <<-EOF
$(echo test)
EOF
}
atf_init_test_cases() {
atf_add_test_case user_add
atf_add_test_case user_add_noupdate
@ -251,4 +260,5 @@ atf_init_test_cases() {
atf_add_test_case user_add_expiration
atf_add_test_case user_add_invalid_user_entry
atf_add_test_case user_add_invalid_group_entry
atf_add_test_case user_add_password_from_h
}