diff options
author | davidn <davidn@FreeBSD.org> | 2000-07-20 00:09:29 +0000 |
---|---|---|
committer | davidn <davidn@FreeBSD.org> | 2000-07-20 00:09:29 +0000 |
commit | c4d081a80705cef90cebf1fbf6b6c63708cbe00d (patch) | |
tree | 879f1dc7e0fea8180dc70319d51807531879856f /usr.sbin | |
parent | 90867c9b4d9701984107ca0b0f20a3e2edfad3ab (diff) | |
download | FreeBSD-src-c4d081a80705cef90cebf1fbf6b6c63708cbe00d.zip FreeBSD-src-c4d081a80705cef90cebf1fbf6b6c63708cbe00d.tar.gz |
Fix another missed case where usermod would not set the "modified" flag:
-h - to set no password. But only mark modified if the account is not
already locked (i.e. first char of crypt password field is '*').
PR: bin/19999
Diffstat (limited to 'usr.sbin')
-rw-r--r-- | usr.sbin/pw/pw_user.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/usr.sbin/pw/pw_user.c b/usr.sbin/pw/pw_user.c index e8a3b07..925c86c 100644 --- a/usr.sbin/pw/pw_user.c +++ b/usr.sbin/pw/pw_user.c @@ -587,9 +587,12 @@ pw_user(struct userconf * cnf, int mode, struct cargs * args) } if ((arg = getarg(args, 'h')) != NULL) { - if (strcmp(arg->val, "-") == 0) - pwd->pw_passwd = "*"; /* No access */ - else { + if (strcmp(arg->val, "-") == 0) { + if (!pwd->pw_passwd || *pwd->pw_passwd != '*') { + pwd->pw_passwd = "*"; /* No access */ + edited = 1; + } + } else { int fd = atoi(arg->val); int b; int istty = isatty(fd); |