diff options
author | bapt <bapt@FreeBSD.org> | 2012-11-20 14:03:09 +0000 |
---|---|---|
committer | bapt <bapt@FreeBSD.org> | 2012-11-20 14:03:09 +0000 |
commit | 2ed31d29a136b086906cadaedceedd82398b9e7b (patch) | |
tree | 759323190678fc7dbcbca7ab1c6ddb86f28030ed /lib | |
parent | 25dd09b99661e08017f7e5059f2aaa0a95cb0e65 (diff) | |
download | FreeBSD-src-2ed31d29a136b086906cadaedceedd82398b9e7b.zip FreeBSD-src-2ed31d29a136b086906cadaedceedd82398b9e7b.tar.gz |
only rename(2) after chmod(2) has succeed
report error if chmod(2) fails
Reported by: jh
Diffstat (limited to 'lib')
-rw-r--r-- | lib/libutil/gr_util.c | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/lib/libutil/gr_util.c b/lib/libutil/gr_util.c index 8d0490b..be34395 100644 --- a/lib/libutil/gr_util.c +++ b/lib/libutil/gr_util.c @@ -318,14 +318,10 @@ gr_copy(int ffd, int tfd, const struct group *gr, struct group *old_gr) int gr_mkdb(void) { - int ret; - - ret = rename(tempname, group_file); - - if (ret == 0) - chmod(group_file, 0644); + if (chmod(tempname, 0644) != 0) + return (-1); - return (ret); + return (rename(tempname, group_file)); } /* |