[hackers] [sbase] cp: Check result of utimensat || Michael Forney

From: <git_AT_suckless.org>
Date: Tue, 27 Dec 2016 15:04:03 +0100 (CET)

commit e03a57df92f92a4388f7b78bcf3ce4bb46f39e66
Author: Michael Forney <mforney_AT_mforney.org>
AuthorDate: Tue Dec 6 02:17:01 2016 -0800
Commit: Laslo Hunhold <dev_AT_frign.de>
CommitDate: Tue Dec 27 14:46:11 2016 +0100

    cp: Check result of utimensat
    
    POSIX says that if duplicating the modification/access times fails, then
    an error should be written to stderr.

diff --git a/libutil/cp.c b/libutil/cp.c
index c398962..7d4c174 100644
--- a/libutil/cp.c
+++ b/libutil/cp.c
_AT_@ -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;
Received on Tue Dec 27 2016 - 15:04:03 CET

This archive was generated by hypermail 2.3.0 : Tue Dec 27 2016 - 15:13:45 CET