From 8cbb37abd7d5a889c42a0305a6749a8fb20365f8 Mon Sep 17 00:00:00 2001 From: Sheldon Hearn Date: Mon, 30 Aug 1999 10:35:38 +0000 Subject: 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 --- pw/pwupd.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'pw/pwupd.c') diff --git a/pw/pwupd.c b/pw/pwupd.c index 05fb087..10a6066 100644 --- a/pw/pwupd.c +++ b/pw/pwupd.c @@ -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; -- cgit v1.2.3