svn commit: r316347 - in stable/11/usr.sbin/pw: . tests
Baptiste Daroussin
bapt at FreeBSD.org
Sat Apr 1 09:27:01 UTC 2017
Author: bapt
Date: Sat Apr 1 09:27:00 2017
New Revision: 316347
URL: https://svnweb.freebsd.org/changeset/base/316347
Log:
MFC: r315912 (by eugen@) and r315935
Properly initialise with content of pw.conf(5) that was mistakenly ignored.
Also, respect "defaultgroup" if specified there.
Add a regression test
PR: 217934
Reported by: Victor Sudakov <vas at mpeks.tomsk.su>
Modified:
stable/11/usr.sbin/pw/pw_user.c
stable/11/usr.sbin/pw/tests/pw_useradd_test.sh
Directory Properties:
stable/11/ (props changed)
Modified: stable/11/usr.sbin/pw/pw_user.c
==============================================================================
--- stable/11/usr.sbin/pw/pw_user.c Sat Apr 1 08:40:47 2017 (r316346)
+++ stable/11/usr.sbin/pw/pw_user.c Sat Apr 1 09:27:00 2017 (r316347)
@@ -1177,7 +1177,7 @@ pw_user_add(int argc, char **argv, char
char line[_PASSWORD_LEN+1], path[MAXPATHLEN];
char *gecos, *homedir, *skel, *walk, *userid, *groupid, *grname;
char *default_passwd, *name, *p;
- const char *cfg;
+ const char *cfg = NULL;
login_cap_t *lc;
FILE *pfp, *fp;
intmax_t id = -1;
@@ -1356,6 +1356,9 @@ pw_user_add(int argc, char **argv, char
if (GETPWNAM(name) != NULL)
errx(EX_DATAERR, "login name `%s' already exists", name);
+ if (!grname)
+ grname = cmdcnf->default_group;
+
pwd = &fakeuser;
pwd->pw_name = name;
pwd->pw_class = cmdcnf->default_class ? cmdcnf->default_class : "";
@@ -1485,7 +1488,7 @@ pw_user_mod(int argc, char **argv, char
struct group *grp;
StringList *groups = NULL;
char args[] = "C:qn:u:c:d:e:p:g:G:mM:l:k:s:w:L:h:H:NPYy:";
- const char *cfg;
+ const char *cfg = NULL;
char *gecos, *homedir, *grname, *name, *newname, *walk, *skel, *shell;
char *passwd, *class, *nispasswd;
login_cap_t *lc;
Modified: stable/11/usr.sbin/pw/tests/pw_useradd_test.sh
==============================================================================
--- stable/11/usr.sbin/pw/tests/pw_useradd_test.sh Sat Apr 1 08:40:47 2017 (r316346)
+++ stable/11/usr.sbin/pw/tests/pw_useradd_test.sh Sat Apr 1 09:27:00 2017 (r316347)
@@ -384,6 +384,19 @@ user_add_with_pw_conf_body()
atf_check -s exit:0 \
${PW} useradd foo -C ${HOME}/pw.conf
}
+atf_test_case user_add_defaultgroup
+user_add_defaultgroup_body()
+{
+ populate_etc_skel
+ echo 'defaultgroup = "plop"' > ${HOME}/pw.conf
+ atf_check -s exit:0 \
+ ${PW} groupadd plop -g 442
+ atf_check -s exit:0 \
+ ${PW} useradd foo -C ${HOME}/pw.conf
+ atf_check -s exit:0 \
+ -o inline:"foo:*:1001:442::0:0:User &:/home/foo:/bin/sh\n" \
+ ${PW} usershow foo
+}
atf_init_test_cases() {
atf_add_test_case user_add
@@ -419,4 +432,5 @@ atf_init_test_cases() {
atf_add_test_case user_add_w_random
atf_add_test_case user_add_w_yes
atf_add_test_case user_add_with_pw_conf
+ atf_add_test_case user_add_defaultgroup
}
More information about the svn-src-stable-11
mailing list