diff options
author | Sheldon Hearn <sheldonh@FreeBSD.org> | 1999-08-30 10:35:38 +0000 |
---|---|---|
committer | Sheldon Hearn <sheldonh@FreeBSD.org> | 1999-08-30 10:35:38 +0000 |
commit | 8cbb37abd7d5a889c42a0305a6749a8fb20365f8 (patch) | |
tree | a1c61be43ff5752b414ad987ac2a5ddfca93314e /pw | |
parent | d07e0690e1f62b9653262c9ad68f18d6ca54f7f7 (diff) | |
download | pw-darwin-8cbb37abd7d5a889c42a0305a6749a8fb20365f8.tar.gz pw-darwin-8cbb37abd7d5a889c42a0305a6749a8fb20365f8.tar.zst pw-darwin-8cbb37abd7d5a889c42a0305a6749a8fb20365f8.zip |
Only do a full pwd_mkdb for deletions; other operations may use the -u
option as an optimization.
PR: 13346
Submitted by: Neil Blakey-Milner <nbm@rucus.ru.ac.za>
Diffstat (limited to 'pw')
-rw-r--r-- | pw/pwupd.c | 8 |
1 files changed, 6 insertions, 2 deletions
@@ -168,8 +168,12 @@ pw_update(struct passwd * pwd, char const * user, int mode) */ if (pwd != NULL) fmtpwentry(pwbuf, pwd, PWF_MASTER); - if ((rc = fileupdate(getpwpath(_MASTERPASSWD), 0644, pwbuf, pfx, l, mode)) != 0) - rc = pwdb(NULL) == 0; + if ((rc = fileupdate(getpwpath(_MASTERPASSWD), 0644, pwbuf, pfx, l, mode)) != 0) { + if (mode == UPD_DELETE) + rc = pwdb(NULL) == 0; + else + rc = pwdb("-u", user, NULL) == 0; + } } } return rc; |