aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnthony Goeckner <agoeckner@users.noreply.github.com>2023-05-02 04:11:39 -0500
committerGitHub <noreply@github.com>2023-05-02 11:11:39 +0200
commit7e31ec541775a2cc96ac47b1c909dbdd8309ce68 (patch)
tree5b9ac0894fea0eaade79bf3c02940f985e817c6d
parenta4fa764b7d7493476e130eb740860654c307227f (diff)
downloadsyncthing-7e31ec541775a2cc96ac47b1c909dbdd8309ce68.tar.gz
syncthing-7e31ec541775a2cc96ac47b1c909dbdd8309ce68.zip
lib/model: Set platform data, incl. copying ownership, for new folders w/ NoPermissions flag (#8883)
Platform data (ownership, xattrs, etc.) is now set correctly for newly-received folders, even if the received folder has the NoPermissions flag.
-rw-r--r--lib/model/folder_sendrecv.go6
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/model/folder_sendrecv.go b/lib/model/folder_sendrecv.go
index f71407e31..c12377acb 100644
--- a/lib/model/folder_sendrecv.go
+++ b/lib/model/folder_sendrecv.go
@@ -622,7 +622,7 @@ func (f *sendReceiveFolder) handleDir(file protocol.FileInfo, snap *db.Snapshot,
// not MkdirAll because the parent should already exist.
mkdir := func(path string) error {
err = f.mtimefs.Mkdir(path, mode)
- if err != nil || f.IgnorePerms || file.NoPermissions {
+ if err != nil || f.IgnorePerms {
return err
}
@@ -631,6 +631,10 @@ func (f *sendReceiveFolder) handleDir(file protocol.FileInfo, snap *db.Snapshot,
return err
}
+ if file.NoPermissions {
+ return nil
+ }
+
// Stat the directory so we can check its permissions.
info, err := f.mtimefs.Lstat(path)
if err != nil {