diff options
author | Neel Natu <neel@FreeBSD.org> | 2013-01-04 19:28:32 +0000 |
---|---|---|
committer | Neel Natu <neel@FreeBSD.org> | 2013-01-04 19:28:32 +0000 |
commit | 5946fff02d2b2e5d1fd3b8fa3634c3f5fbaf7e0b (patch) | |
tree | 505256c5f6496f779a54c7842e16886f87803e08 /pw/pwupd.c | |
parent | ea570e4ea7dc6c03c87457846a4509c32a8aa689 (diff) | |
parent | f5d6684c8d9c572b686c5274162e3b17ae77091f (diff) | |
download | pw-darwin-5946fff02d2b2e5d1fd3b8fa3634c3f5fbaf7e0b.tar.gz pw-darwin-5946fff02d2b2e5d1fd3b8fa3634c3f5fbaf7e0b.tar.zst pw-darwin-5946fff02d2b2e5d1fd3b8fa3634c3f5fbaf7e0b.zip |
IFC @ r244983.
Diffstat (limited to 'pw/pwupd.c')
-rw-r--r-- | pw/pwupd.c | 16 |
1 files changed, 9 insertions, 7 deletions
@@ -56,12 +56,10 @@ setpwdir(const char * dir) { if (dir == NULL) return -1; - else { - char * d = malloc(strlen(dir)+1); - if (d == NULL) - return -1; - pwpath = strcpy(d, dir); - } + else + pwpath = strdup(dir); + if (pwpath == NULL) + return -1; return 0; } @@ -148,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()"); } |