diff options
author | Sebastian Lackner | 2019-01-03 17:48:54 +0100 |
---|---|---|
committer | rfjakob | 2019-01-03 18:24:05 +0100 |
commit | 927b3ce4cfb455a258a15a5566429c44cf32cb35 (patch) | |
tree | 08a4fdc9d669868d8211c9e4e084e54008e1781a /internal/syscallcompat/open_nofollow.go | |
parent | d86f9914accffa4e17c2056fe808c67a14365ce3 (diff) |
syscallcompat: Use O_PATH to open base directory.
Also remove some unnecessary flags: When O_PATH is specified in flags, flag
bits other than O_CLOEXEC, O_DIRECTORY, and O_NOFOLLOW are ignored.
Diffstat (limited to 'internal/syscallcompat/open_nofollow.go')
-rw-r--r-- | internal/syscallcompat/open_nofollow.go | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/internal/syscallcompat/open_nofollow.go b/internal/syscallcompat/open_nofollow.go index db39415..a1e7cce 100644 --- a/internal/syscallcompat/open_nofollow.go +++ b/internal/syscallcompat/open_nofollow.go @@ -23,8 +23,7 @@ func OpenDirNofollow(baseDir string, relPath string) (fd int, err error) { return -1, syscall.EINVAL } // Open the base dir (following symlinks) - // TODO: should this use syscallcompat.O_PATH? - dirfd, err := syscall.Open(baseDir, syscall.O_RDONLY|syscall.O_DIRECTORY, 0) + dirfd, err := syscall.Open(baseDir, syscall.O_DIRECTORY|O_PATH, 0) if err != nil { return -1, err } @@ -37,7 +36,7 @@ func OpenDirNofollow(baseDir string, relPath string) (fd int, err error) { // Walk the directory tree var dirfd2 int for _, name := range parts { - dirfd2, err = Openat(dirfd, name, syscall.O_RDONLY|syscall.O_NOFOLLOW|syscall.O_DIRECTORY|O_PATH, 0) + dirfd2, err = Openat(dirfd, name, syscall.O_NOFOLLOW|syscall.O_DIRECTORY|O_PATH, 0) syscall.Close(dirfd) if err != nil { return -1, err |