func fstat(f *os.File) (unix.Stat_t, error) { … }
func fstatfs(f *os.File) (unix.Statfs_t, error) { … }
const procSuperMagic …
const procRootIno …
func verifyProcRoot(procRoot *os.File) error { … }
var hasNewMountApi …
func fsopen(fsName string, flags int) (*os.File, error) { … }
func fsmount(ctx *os.File, flags, mountAttrs int) (*os.File, error) { … }
func newPrivateProcMount() (*os.File, error) { … }
func openTree(dir *os.File, path string, flags uint) (*os.File, error) { … }
func clonePrivateProcMount() (_ *os.File, Err error) { … }
func privateProcRoot() (*os.File, error) { … }
func unsafeHostProcRoot() (_ *os.File, Err error) { … }
func doGetProcRoot() (*os.File, error) { … }
var getProcRoot …
var hasProcThreadSelf …
var errUnsafeProcfs …
type procThreadSelfCloser …
func procThreadSelf(procRoot *os.File, subpath string) (_ *os.File, _ procThreadSelfCloser, Err error) { … }
var hasStatxMountId …
func getMountId(dir *os.File, path string) (uint64, error) { … }
func checkSymlinkOvermount(procRoot *os.File, dir *os.File, path string) error { … }
func doRawProcSelfFdReadlink(procRoot *os.File, fd int) (string, error) { … }
func rawProcSelfFdReadlink(fd int) (string, error) { … }
func procSelfFdReadlink(f *os.File) (string, error) { … }
var errPossibleBreakout …
var errInvalidDirectory …
var errDeletedInode …
func isDeadInode(file *os.File) error { … }
func checkProcSelfFdPath(path string, file *os.File) error { … }
var hookForcePrivateProcRootOpenTree …
var hookForcePrivateProcRootOpenTreeAtRecursive …
var hookForceGetProcRootUnsafe …
var hookForceProcSelfTask …
var hookForceProcSelf …
func hookDummy() bool { … }
func hookDummyFile(_ *os.File) bool { … }