From e4f1a32a9a109805107fc0655006f2eedf75c52c Mon Sep 17 00:00:00 2001 From: Jakob Unterwurzacher Date: Sat, 22 Sep 2018 21:10:54 +0200 Subject: [PATCH] fusefrontend: Fix uint16 build failure on Darwin Error was: # github.com/rfjakob/gocryptfs/internal/fusefrontend internal/fusefrontend/fs.go:179: cannot use perms | 256 (type uint16) as type uint32 in argument to syscall.Fchmod internal/fusefrontend/fs.go:185: cannot use perms (type uint16) as type uint32 in argument to syscall.Fchmod --- internal/fusefrontend/fs.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/internal/fusefrontend/fs.go b/internal/fusefrontend/fs.go index 557393b..1b6941e 100644 --- a/internal/fusefrontend/fs.go +++ b/internal/fusefrontend/fs.go @@ -162,7 +162,8 @@ func (fs *FS) openWriteOnlyFile(dirfd int, cName string, newFlags int) (fuseFile if err != nil { return nil, fuse.ToStatus(err) } - perms := st.Mode & 0777 + // The cast to uint32 fixes a build failure on Darwin, where st.Mode is uint16. + perms := uint32(st.Mode & 0777) // Verify that we don't have read permissions if perms&0400 != 0 { tlog.Warn.Printf("openWriteOnlyFile: unexpected permissions %#o, returning EPERM", perms)