aboutsummaryrefslogtreecommitdiff
path: root/lib/libutil/gr_util.c
diff options
context:
space:
mode:
authorBaptiste Daroussin <bapt@FreeBSD.org>2012-11-20 14:03:09 +0000
committerBaptiste Daroussin <bapt@FreeBSD.org>2012-11-20 14:03:09 +0000
commit09259e6c48d3f9f508c49c131a9b414b7ab8e8b7 (patch)
tree759323190678fc7dbcbca7ab1c6ddb86f28030ed /lib/libutil/gr_util.c
parent02c62349c93f29b881498630c7a0623540255764 (diff)
downloadsrc-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.c10
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));
}
/*