diff options
| author | Sebastian Lackner | 2019-01-03 18:11:07 +0100 | 
|---|---|---|
| committer | rfjakob | 2019-01-03 18:24:05 +0100 | 
| commit | a1ba4b6576695a3e680364813425ffd9c9c7c148 (patch) | |
| tree | a48631b16f47d006178f97770816569948e01319 | |
| parent | 0414ef2572c3c07aa2a1b6dbb18a276a876c985a (diff) | |
Omit syscall.O_RDONLY flag when passing O_PATH.
When O_PATH is specified in flags, flag bits other than O_CLOEXEC, O_DIRECTORY,
and O_NOFOLLOW are ignored.
| -rw-r--r-- | init_dir.go | 2 | ||||
| -rw-r--r-- | internal/fusefrontend/openbackingdir.go | 4 | ||||
| -rw-r--r-- | tests/test_helpers/helpers.go | 2 | 
3 files changed, 4 insertions, 4 deletions
| diff --git a/init_dir.go b/init_dir.go index 1f5a7fc..ecfec9d 100644 --- a/init_dir.go +++ b/init_dir.go @@ -99,7 +99,7 @@ func initDir(args *argContainer) {  	// in the root dir  	if !args.plaintextnames && !args.reverse {  		// Open cipherdir (following symlinks) -		dirfd, err := syscall.Open(args.cipherdir, syscall.O_RDONLY|syscall.O_DIRECTORY|syscallcompat.O_PATH, 0) +		dirfd, err := syscall.Open(args.cipherdir, syscall.O_DIRECTORY|syscallcompat.O_PATH, 0)  		if err == nil {  			err = nametransform.WriteDirIVAt(dirfd)  			syscall.Close(dirfd) diff --git a/internal/fusefrontend/openbackingdir.go b/internal/fusefrontend/openbackingdir.go index d56848f..1cca81b 100644 --- a/internal/fusefrontend/openbackingdir.go +++ b/internal/fusefrontend/openbackingdir.go @@ -42,7 +42,7 @@ func (fs *FS) openBackingDir(relPath string) (dirfd int, cName string, err error  		return dirfd, cName, nil  	}  	// Open cipherdir (following symlinks) -	dirfd, err = syscall.Open(fs.args.Cipherdir, syscall.O_RDONLY|syscall.O_DIRECTORY|syscallcompat.O_PATH, 0) +	dirfd, err = syscall.Open(fs.args.Cipherdir, syscall.O_DIRECTORY|syscallcompat.O_PATH, 0)  	if err != nil {  		return -1, "", err  	} @@ -65,7 +65,7 @@ func (fs *FS) openBackingDir(relPath string) (dirfd int, cName string, err error  			break  		}  		// Not the last part? Descend into next directory. -		dirfd2, err := syscallcompat.Openat(dirfd, cName, syscall.O_RDONLY|syscall.O_NOFOLLOW|syscall.O_DIRECTORY|syscallcompat.O_PATH, 0) +		dirfd2, err := syscallcompat.Openat(dirfd, cName, syscall.O_NOFOLLOW|syscall.O_DIRECTORY|syscallcompat.O_PATH, 0)  		syscall.Close(dirfd)  		if err != nil {  			return -1, "", err diff --git a/tests/test_helpers/helpers.go b/tests/test_helpers/helpers.go index 9ff29a8..90eebdf 100644 --- a/tests/test_helpers/helpers.go +++ b/tests/test_helpers/helpers.go @@ -114,7 +114,7 @@ func ResetTmpDir(createDirIV bool) {  	}  	if createDirIV {  		// Open cipherdir (following symlinks) -		dirfd, err := syscall.Open(DefaultCipherDir, syscall.O_RDONLY|syscall.O_DIRECTORY|syscallcompat.O_PATH, 0) +		dirfd, err := syscall.Open(DefaultCipherDir, syscall.O_DIRECTORY|syscallcompat.O_PATH, 0)  		if err == nil {  			err = nametransform.WriteDirIVAt(dirfd)  			syscall.Close(dirfd) | 
