From e03a57df92f92a4388f7b78bcf3ce4bb46f39e66 Mon Sep 17 00:00:00 2001 From: Michael Forney Date: Tue, 6 Dec 2016 02:17:01 -0800 Subject: [PATCH] cp: Check result of utimensat POSIX says that if duplicating the modification/access times fails, then an error should be written to stderr. --- libutil/cp.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/libutil/cp.c b/libutil/cp.c index c398962..7d4c174 100644 --- 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;