Documentation ¶
Index ¶
- Constants
- func Faccessat(dirfd int, path string, mode uint32) error
- func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error)
- func Fgetxattr(fd int, attr string) (val []byte, err error)
- func Flistxattr(fd int) (attrs []string, err error)
- func Fstatat(dirfd int, path string, stat *unix.Stat_t, flags int) (err error)
- func IsENOSPC(err error) bool
- func Lgetxattr(path string, attr string) (val []byte, err error)
- func Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error)
- func Llistxattr(path string) (attrs []string, err error)
- func Mkdirat(dirfd int, path string, mode uint32) (err error)
- func OpenDirNofollow(baseDir string, relPath string) (fd int, err error)
- func Openat(dirfd int, path string, flags int, mode uint32) (fd int, err error)
- func Readlinkat(dirfd int, path string) (string, error)
- func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)
- func Symlinkat(oldpath string, newdirfd int, newpath string) (err error)
- func Unlinkat(dirfd int, path string, flags int) (err error)
Constants ¶
const PATH_MAX = 4096
PATH_MAX is the maximum allowed path length on Linux. It is not defined on Darwin, so we use the Linux value.
const XATTR_BUFSZ = XATTR_SIZE_MAX + 1024
Make the buffer 1kB bigger so we can detect overflows
const XATTR_SIZE_MAX = 65536
Variables ¶
This section is empty.
Functions ¶
func Faccessat ¶ added in v1.4.3
Faccessat exists both in Linux and in MacOS 10.10+, but the Linux version DOES NOT support any flags. Emulate AT_SYMLINK_NOFOLLOW like glibc does.
func Fgetxattr ¶ added in v1.7.1
Fgetxattr is a wrapper around unix.Fgetxattr that handles the buffer sizing.
func Flistxattr ¶ added in v1.7.1
Flistxattr is a wrapper for unix.Flistxattr that handles buffer sizing and parsing the returned blob to a string slice.
func IsENOSPC ¶ added in v1.6.1
IsENOSPC tries to find out if "err" is a (potentially wrapped) ENOSPC error.
func Lgetxattr ¶ added in v1.7.1
Lgetxattr is a wrapper around unix.Lgetxattr that handles the buffer sizing.
func Llistxattr ¶ added in v1.7.1
Llistxattr is a wrapper for unix.Llistxattr that handles buffer sizing and parsing the returned blob to a string slice.
func OpenDirNofollow ¶ added in v1.7.1
OpenDirNofollow opens the dir at "relPath" in a way that is secure against symlink attacks. Symlinks that are part of "relPath" are never followed. This function is implemented by walking the directory tree, starting at "baseDir", using the Openat syscall with the O_NOFOLLOW flag. Symlinks that are part of the "baseDir" path are followed.
func Readlinkat ¶ added in v1.4.3
Readlinkat is a convenience wrapper around unix.Readlinkat() that takes care of buffer sizing. Implemented like os.Readlink().
Types ¶
This section is empty.