slackware-current/source/n/rsync/rsync.no_lchmod.diff

22 lines
592 B
Diff
Raw Normal View History

--- ./syscall.c.orig 2021-02-22 14:30:03.639032473 -0600
+++ ./syscall.c 2021-02-22 14:30:07.490032559 -0600
@@ -232,7 +232,8 @@
RETURN_ERROR_IF_RO_OR_LO;
#ifdef HAVE_LCHMOD
code = lchmod(path, mode & CHMOD_BITS);
-#else
+ if (code < 0 && errno == ENOTSUP) {
+#endif
if (S_ISLNK(mode)) {
# if defined HAVE_SETATTRLIST
struct attrlist attrList;
@@ -247,6 +248,8 @@
# endif
} else
code = chmod(path, mode & CHMOD_BITS); /* DISCOURAGED FUNCTION */
+#ifdef HAVE_LCHMOD
+ }
#endif /* !HAVE_LCHMOD */
if (code != 0 && (preserve_perms || preserve_executability))
return code;