diff options
author | Baptiste Daroussin <bapt@FreeBSD.org> | 2012-11-20 14:03:09 +0000 |
---|---|---|
committer | Baptiste Daroussin <bapt@FreeBSD.org> | 2012-11-20 14:03:09 +0000 |
commit | 09259e6c48d3f9f508c49c131a9b414b7ab8e8b7 (patch) | |
tree | 759323190678fc7dbcbca7ab1c6ddb86f28030ed /lib/libutil/gr_util.c | |
parent | 02c62349c93f29b881498630c7a0623540255764 (diff) | |
download | src-09259e6c48d3f9f508c49c131a9b414b7ab8e8b7.tar.gz src-09259e6c48d3f9f508c49c131a9b414b7ab8e8b7.zip |
only rename(2) after chmod(2) has succeed
report error if chmod(2) fails
Reported by: jh
Notes
Notes:
svn path=/head/; revision=243334
Diffstat (limited to 'lib/libutil/gr_util.c')
-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 8d0490be7057..be343954f403 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)); } /* |