commit e03a57df92f92a4388f7b78bcf3ce4bb46f39e66
parent a8a9b3bae9b021c328db27f426dcaf90e01ca030
Author: Michael Forney <mforney@mforney.org>
Date: Tue, 6 Dec 2016 02:17:01 -0800
cp: Check result of utimensat
POSIX says that if duplicating the modification/access times fails, then
an error should be written to stderr.
Diffstat:
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/libutil/cp.c b/libutil/cp.c
@@ -156,8 +156,10 @@ cp(const char *s1, const char *s2, int depth)
if (!S_ISLNK(st.st_mode)) {
times[0] = st.st_atim;
times[1] = st.st_mtim;
- utimensat(AT_FDCWD, s2, times, 0);
-
+ if (utimensat(AT_FDCWD, s2, times, 0) < 0) {
+ weprintf("utimensat %s:", s2);
+ cp_status = 1;
+ }
if (chown(s2, st.st_uid, st.st_gid) < 0) {
weprintf("chown %s:", s2);
cp_status = 1;