Author: bapt
Date: Thu Jul  9 14:14:44 2015
New Revision: 285318
URL: https://svnweb.freebsd.org/changeset/base/285318

Log:
  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 <[email protected]>

Modified:
  head/usr.sbin/pw/pw.c
  head/usr.sbin/pw/pw_group.c
  head/usr.sbin/pw/pwupd.h
  head/usr.sbin/pw/tests/pw_useradd.sh

Modified: head/usr.sbin/pw/pw.c
==============================================================================
--- head/usr.sbin/pw/pw.c       Thu Jul  9 13:30:37 2015        (r285317)
+++ head/usr.sbin/pw/pw.c       Thu Jul  9 14:14:44 2015        (r285318)
@@ -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.

Modified: head/usr.sbin/pw/pw_group.c
==============================================================================
--- head/usr.sbin/pw/pw_group.c Thu Jul  9 13:30:37 2015        (r285317)
+++ head/usr.sbin/pw/pw_group.c Thu Jul  9 14:14:44 2015        (r285318)
@@ -200,7 +200,7 @@ pw_group(int mode, char *name, long id, 
         * 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 ||

Modified: head/usr.sbin/pw/pwupd.h
==============================================================================
--- head/usr.sbin/pw/pwupd.h    Thu Jul  9 13:30:37 2015        (r285317)
+++ head/usr.sbin/pw/pwupd.h    Thu Jul  9 14:14:44 2015        (r285318)
@@ -86,6 +86,7 @@ struct pwconf {
        char            *newname;
        char            *config;
        int              fd;
+       int              which;
        bool             dryrun;
        bool             pretty;
        bool             v7;

Modified: head/usr.sbin/pw/tests/pw_useradd.sh
==============================================================================
--- head/usr.sbin/pw/tests/pw_useradd.sh        Thu Jul  9 13:30:37 2015        
(r285317)
+++ head/usr.sbin/pw/tests/pw_useradd.sh        Thu Jul  9 14:14:44 2015        
(r285318)
@@ -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
 }
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "[email protected]"

Reply via email to