summaryrefslogtreecommitdiffstats
path: root/pw
diff options
context:
space:
mode:
authorEugene Grosbein <eugen@FreeBSD.org>2017-03-24 16:18:57 +0000
committerEugene Grosbein <eugen@FreeBSD.org>2017-03-24 16:18:57 +0000
commit841aacdd6b25fd8a7324623dbc2ebae7e572a6f6 (patch)
treee21258467dfe466269ce8a8a8730f43dc708ec5a /pw
parent0aca29460b05a01a3409c35ae8d030a4354279f7 (diff)
downloadpw-darwin-841aacdd6b25fd8a7324623dbc2ebae7e572a6f6.tar.gz
pw-darwin-841aacdd6b25fd8a7324623dbc2ebae7e572a6f6.tar.zst
pw-darwin-841aacdd6b25fd8a7324623dbc2ebae7e572a6f6.zip
Properly initialise with content of pw.conf(5) that was mistakenly ignored.
Also, respect "defaultgroup" if specified there. PR: 217934 Reported by: Victor Sudakov <vas@mpeks.tomsk.su> Reviewed by: bapt Approved by: bapt, vsevolod (mentor) MFC after: 1 week
Diffstat (limited to 'pw')
-rw-r--r--pw/pw_user.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/pw/pw_user.c b/pw/pw_user.c
index 8cffac9..5466bec 100644
--- a/pw/pw_user.c
+++ b/pw/pw_user.c
@@ -1177,7 +1177,7 @@ pw_user_add(int argc, char **argv, char *arg1)
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 *arg1)
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 *arg1)
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;