summaryrefslogtreecommitdiffstats
path: root/usr.sbin/pw
diff options
context:
space:
mode:
authordavidn <davidn@FreeBSD.org>2000-07-20 00:09:29 +0000
committerdavidn <davidn@FreeBSD.org>2000-07-20 00:09:29 +0000
commitc4d081a80705cef90cebf1fbf6b6c63708cbe00d (patch)
tree879f1dc7e0fea8180dc70319d51807531879856f /usr.sbin/pw
parent90867c9b4d9701984107ca0b0f20a3e2edfad3ab (diff)
downloadFreeBSD-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/pw')
-rw-r--r--usr.sbin/pw/pw_user.c9
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);
OpenPOWER on IntegriCloud