aboutsummaryrefslogtreecommitdiff
path: root/usr.bin/xinstall
diff options
context:
space:
mode:
authorKirk McKusick <mckusick@FreeBSD.org>2018-08-27 15:20:42 +0000
committerKirk McKusick <mckusick@FreeBSD.org>2018-08-27 15:20:42 +0000
commitd81347652cf4b3bedee180a55758857a5a7ac7da (patch)
tree51d6b162b6cfb7119fcf74629ab5f8c8d76751be /usr.bin/xinstall
parent78da60464191371524fd3d85da0a9efe63369497 (diff)
Notes
Diffstat (limited to 'usr.bin/xinstall')
-rw-r--r--usr.bin/xinstall/xinstall.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/usr.bin/xinstall/xinstall.c b/usr.bin/xinstall/xinstall.c
index 512ec962d4a1..880766b34623 100644
--- a/usr.bin/xinstall/xinstall.c
+++ b/usr.bin/xinstall/xinstall.c
@@ -1265,6 +1265,12 @@ copy(int from_fd, const char *from_name, int to_fd, const char *to_name,
err(EX_OSERR, "%s", from_name);
}
}
+ if (safecopy && fsync(to_fd) == -1) {
+ serrno = errno;
+ (void)unlink(to_name);
+ errno = serrno;
+ err(EX_OSERR, "fsync failed for %s", to_name);
+ }
return (digest_end(&ctx, NULL));
}