From 2cc619399205389e1985f1f61392ebfe0c9cb032 Mon Sep 17 00:00:00 2001 From: Marijn Meijles Date: Wed, 11 Sep 2019 19:04:08 +0200 Subject: [PATCH] Respect not preserving permissions in recursive sftp file transfer The manual page specifies an explicit parameter to transfer permissions and access times, thereby implying it is not done when this parameter is left out. This was not the case when using the recursive option. --- sftp-client.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/sftp-client.c b/sftp-client.c index 4fb6181909a..fcfb5cb3add 100644 --- a/sftp-client.c +++ b/sftp-client.c @@ -1860,8 +1860,10 @@ upload_dir_internal(struct sftp_conn *conn, const char *src, const char *dst, a.flags &= ~SSH2_FILEXFER_ATTR_SIZE; a.flags &= ~SSH2_FILEXFER_ATTR_UIDGID; a.perm &= 01777; - if (!preserve_flag) - a.flags &= ~SSH2_FILEXFER_ATTR_ACMODTIME; + if (!preserve_flag) { + a.flags &= ~SSH2_FILEXFER_ATTR_ACMODTIME; + a.flags &= ~SSH2_FILEXFER_ATTR_PERMISSIONS; + } /* * sftp lacks a portable status value to match errno EEXIST,