diff options
Diffstat (limited to 'internal')
| -rw-r--r-- | internal/fusefrontend/node_xattr_darwin.go | 12 | ||||
| -rw-r--r-- | internal/syscallcompat/sys_darwin.go | 2 | 
2 files changed, 7 insertions, 7 deletions
| diff --git a/internal/fusefrontend/node_xattr_darwin.go b/internal/fusefrontend/node_xattr_darwin.go index 8c8a153..a539847 100644 --- a/internal/fusefrontend/node_xattr_darwin.go +++ b/internal/fusefrontend/node_xattr_darwin.go @@ -27,7 +27,7 @@ func (n *Node) getXAttr(cAttr string) (out []byte, errno syscall.Errno) {  	defer syscall.Close(dirfd)  	// O_NONBLOCK to not block on FIFOs. -	fd, err := syscallcompat.Openat(dirfd, cName, syscall.O_RDONLY|syscall.O_NONBLOCK, 0) +	fd, err := syscallcompat.Openat(dirfd, cName, syscall.O_RDONLY|syscall.O_NONBLOCK|syscall.O_NOFOLLOW, 0)  	if err != nil {  		return nil, fs.ToErrno(err)  	} @@ -49,10 +49,10 @@ func (n *Node) setXAttr(context *fuse.Context, cAttr string, cData []byte, flags  	defer syscall.Close(dirfd)  	// O_NONBLOCK to not block on FIFOs. -	fd, err := syscallcompat.Openat(dirfd, cName, syscall.O_WRONLY|syscall.O_NONBLOCK, 0) +	fd, err := syscallcompat.Openat(dirfd, cName, syscall.O_WRONLY|syscall.O_NONBLOCK|syscall.O_NOFOLLOW, 0)  	// Directories cannot be opened read-write. Retry.  	if err == syscall.EISDIR { -		fd, err = syscallcompat.Openat(dirfd, cName, syscall.O_RDONLY|syscall.O_DIRECTORY|syscall.O_NONBLOCK, 0) +		fd, err = syscallcompat.Openat(dirfd, cName, syscall.O_RDONLY|syscall.O_DIRECTORY|syscall.O_NONBLOCK|syscall.O_NOFOLLOW, 0)  	}  	if err != nil {  		fs.ToErrno(err) @@ -71,10 +71,10 @@ func (n *Node) removeXAttr(cAttr string) (errno syscall.Errno) {  	defer syscall.Close(dirfd)  	// O_NONBLOCK to not block on FIFOs. -	fd, err := syscallcompat.Openat(dirfd, cName, syscall.O_WRONLY|syscall.O_NONBLOCK, 0) +	fd, err := syscallcompat.Openat(dirfd, cName, syscall.O_WRONLY|syscall.O_NONBLOCK|syscall.O_NOFOLLOW, 0)  	// Directories cannot be opened read-write. Retry.  	if err == syscall.EISDIR { -		fd, err = syscallcompat.Openat(dirfd, cName, syscall.O_RDONLY|syscall.O_DIRECTORY|syscall.O_NONBLOCK, 0) +		fd, err = syscallcompat.Openat(dirfd, cName, syscall.O_RDONLY|syscall.O_DIRECTORY|syscall.O_NONBLOCK|syscall.O_NOFOLLOW, 0)  	}  	if err != nil {  		return fs.ToErrno(err) @@ -93,7 +93,7 @@ func (n *Node) listXAttr() (out []string, errno syscall.Errno) {  	defer syscall.Close(dirfd)  	// O_NONBLOCK to not block on FIFOs. -	fd, err := syscallcompat.Openat(dirfd, cName, syscall.O_RDONLY|syscall.O_NONBLOCK, 0) +	fd, err := syscallcompat.Openat(dirfd, cName, syscall.O_RDONLY|syscall.O_NONBLOCK|syscall.O_NOFOLLOW, 0)  	if err != nil {  		return nil, fs.ToErrno(err)  	} diff --git a/internal/syscallcompat/sys_darwin.go b/internal/syscallcompat/sys_darwin.go index 075563f..de795a4 100644 --- a/internal/syscallcompat/sys_darwin.go +++ b/internal/syscallcompat/sys_darwin.go @@ -14,7 +14,7 @@ import (  )  const ( -	// O_DIRECT means oncached I/O on Linux. No direct equivalent on MacOS and defined +	// O_DIRECT means uncached I/O on Linux. No direct equivalent on MacOS and defined  	// to zero there.  	O_DIRECT = 0 | 
