mirror of
https://github.com/opencontainers/runc.git
synced 2026-07-11 06:03:57 +08:00
libcontainer: if close_range fails, fall back to the old way
Signed-off-by: Evan Phoenix <evan@phx.io>
This commit is contained in:
@@ -103,7 +103,13 @@ func CloseExecFrom(minFd int) error {
|
|||||||
// Use close_range(CLOSE_RANGE_CLOEXEC) if possible.
|
// Use close_range(CLOSE_RANGE_CLOEXEC) if possible.
|
||||||
if haveCloseRangeCloexec() {
|
if haveCloseRangeCloexec() {
|
||||||
err := unix.CloseRange(uint(minFd), math.MaxInt32, unix.CLOSE_RANGE_CLOEXEC)
|
err := unix.CloseRange(uint(minFd), math.MaxInt32, unix.CLOSE_RANGE_CLOEXEC)
|
||||||
return os.NewSyscallError("close_range", err)
|
if err == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
logrus.Debugf("close_range failed, closing range one at a time (error: %v)", err)
|
||||||
|
|
||||||
|
// If close_range fails, we fall back to the standard loop.
|
||||||
}
|
}
|
||||||
// Otherwise, fall back to the standard loop.
|
// Otherwise, fall back to the standard loop.
|
||||||
return fdRangeFrom(minFd, unix.CloseOnExec)
|
return fdRangeFrom(minFd, unix.CloseOnExec)
|
||||||
|
|||||||
Reference in New Issue
Block a user