diff options
author | bapt <bapt@FreeBSD.org> | 2012-12-26 18:28:17 +0000 |
---|---|---|
committer | bapt <bapt@FreeBSD.org> | 2012-12-26 18:28:17 +0000 |
commit | 13dabd466a14c3ee7b3daebcffa9207bd79c8e48 (patch) | |
tree | 48099666354dc2bef2e389bce321e8c86084110d /usr.sbin/pw/pwupd.c | |
parent | d1e0080a5ef8d493131ae801cbc3ab257dd761b9 (diff) | |
download | FreeBSD-src-13dabd466a14c3ee7b3daebcffa9207bd79c8e48.zip FreeBSD-src-13dabd466a14c3ee7b3daebcffa9207bd79c8e48.tar.gz |
In case of the deletion of a user those whole database has to be regenerated,
otherwise the user planned to be deleted remain in the pwd.db while removed from
the plain text password file.
Diffstat (limited to 'usr.sbin/pw/pwupd.c')
-rw-r--r-- | usr.sbin/pw/pwupd.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/usr.sbin/pw/pwupd.c b/usr.sbin/pw/pwupd.c index 0f2df7a..22662db 100644 --- a/usr.sbin/pw/pwupd.c +++ b/usr.sbin/pw/pwupd.c @@ -146,7 +146,11 @@ pw_update(struct passwd * pwd, char const * user) pw_fini(); err(1, "pw_copy()"); } - if (pw_mkdb(user) == -1) { + /* + * in case of deletion of a user, the whole database + * needs to be regenerated + */ + if (pw_mkdb(pw != NULL ? user : NULL) == -1) { pw_fini(); err(1, "pw_mkdb()"); } |