Author: bapt
Date: Sat Apr  1 09:29:47 2017
New Revision: 316348
URL: https://svnweb.freebsd.org/changeset/base/316348

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
  Submitted by: Victor Sudakov <v...@mpeks.tomsk.su>

Modified:
  stable/10/usr.sbin/pw/pw_user.c
  stable/10/usr.sbin/pw/tests/pw_useradd_test.sh
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/usr.sbin/pw/pw_user.c
==============================================================================
--- stable/10/usr.sbin/pw/pw_user.c     Sat Apr  1 09:27:00 2017        
(r316347)
+++ stable/10/usr.sbin/pw/pw_user.c     Sat Apr  1 09:29:47 2017        
(r316348)
@@ -1179,7 +1179,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;
@@ -1358,6 +1358,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 : "";
@@ -1487,7 +1490,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/10/usr.sbin/pw/tests/pw_useradd_test.sh
==============================================================================
--- stable/10/usr.sbin/pw/tests/pw_useradd_test.sh      Sat Apr  1 09:27:00 
2017        (r316347)
+++ stable/10/usr.sbin/pw/tests/pw_useradd_test.sh      Sat Apr  1 09:29:47 
2017        (r316348)
@@ -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
 }
_______________________________________________
svn-src-stable-10@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-stable-10
To unsubscribe, send any mail to "svn-src-stable-10-unsubscr...@freebsd.org"

Reply via email to