Skip to content

Commit b3dd1bc

Browse files
committed
utils: remove unneeded EnsureProcHandle
All of the callers of EnsureProcHandle now use filepath-securejoin's ProcThreadSelf to get a file handle, which has much stricter verification to avoid procfs attacks than EnsureProcHandle's very simplistic filesystem type check. Signed-off-by: Aleksa Sarai <[email protected]>
1 parent ff6fe13 commit b3dd1bc

File tree

2 files changed

+0
-24
lines changed

2 files changed

+0
-24
lines changed

libcontainer/apparmor/apparmor_linux.go

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -46,12 +46,6 @@ func setProcAttr(attr, value string) error {
4646
defer closer()
4747
defer f.Close()
4848

49-
// NOTE: This is not really necessary since securejoin.ProcThreadSelf
50-
// verifies this in a far stricter sense than EnsureProcHandle.
51-
if err := utils.EnsureProcHandle(f); err != nil {
52-
return err
53-
}
54-
5549
_, err = f.WriteString(value)
5650
return err
5751
}

libcontainer/utils/utils_unix.go

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -19,18 +19,6 @@ import (
1919
"golang.org/x/sys/unix"
2020
)
2121

22-
// EnsureProcHandle returns whether or not the given file handle is on procfs.
23-
func EnsureProcHandle(fh *os.File) error {
24-
var buf unix.Statfs_t
25-
if err := unix.Fstatfs(int(fh.Fd()), &buf); err != nil {
26-
return fmt.Errorf("ensure %s is on procfs: %w", fh.Name(), err)
27-
}
28-
if buf.Type != unix.PROC_SUPER_MAGIC {
29-
return fmt.Errorf("%s is not on procfs", fh.Name())
30-
}
31-
return nil
32-
}
33-
3422
var (
3523
haveCloseRangeCloexecBool bool
3624
haveCloseRangeCloexecOnce sync.Once
@@ -67,12 +55,6 @@ func fdRangeFrom(minFd int, fn fdFunc) error {
6755
defer closer()
6856
defer fdDir.Close()
6957

70-
// NOTE: This is not really necessary since securejoin.ProcThreadSelf
71-
// verifies this in a far stricter sense than EnsureProcHandle.
72-
if err := EnsureProcHandle(fdDir); err != nil {
73-
return err
74-
}
75-
7658
fdList, err := fdDir.Readdirnames(-1)
7759
if err != nil {
7860
return err

0 commit comments

Comments
 (0)