From e35ad79b1bb0239b50d08f80853acaf11dc13fac Mon Sep 17 00:00:00 2001 From: Wayne Davison Date: Fri, 25 Jan 2008 16:51:10 -0800 Subject: [PATCH] Make do_chmod() report an error with -E. --- syscall.c | 3 ++- t_unsafe.c | 1 + tls.c | 1 + trimslash.c | 1 + 4 files changed, 5 insertions(+), 1 deletion(-) diff --git a/syscall.c b/syscall.c index 4369c6e3..39554e95 100644 --- a/syscall.c +++ b/syscall.c @@ -34,6 +34,7 @@ extern int am_root; extern int read_only; extern int list_only; extern int preserve_perms; +extern int preserve_executability; #define RETURN_ERROR_IF(x,e) \ do { \ @@ -167,7 +168,7 @@ int do_chmod(const char *path, mode_t mode) #endif } else code = chmod(path, mode & CHMOD_BITS); - if (code != 0 && preserve_perms) + if (code != 0 && (preserve_perms || preserve_executability)) return code; return 0; } diff --git a/t_unsafe.c b/t_unsafe.c index 5c989ed2..9b538968 100644 --- a/t_unsafe.c +++ b/t_unsafe.c @@ -29,6 +29,7 @@ int read_only = 0; int list_only = 0; int verbose = 0; int preserve_perms = 0; +int preserve_executability = 0; int main(int argc, char **argv) diff --git a/tls.c b/tls.c index 97b713be..7628d688 100644 --- a/tls.c +++ b/tls.c @@ -46,6 +46,7 @@ int am_root = 0; int read_only = 1; int list_only = 0; int preserve_perms = 0; +int preserve_executability = 0; #ifdef SUPPORT_XATTRS diff --git a/trimslash.c b/trimslash.c index 2188dc33..e5cf2f4c 100644 --- a/trimslash.c +++ b/trimslash.c @@ -26,6 +26,7 @@ int am_root = 0; int read_only = 1; int list_only = 0; int preserve_perms = 0; +int preserve_executability = 0; int main(int argc, char **argv) -- 2.34.1