diff --git a/pkg/sentry/socket/hostinet/socket.go b/pkg/sentry/socket/hostinet/socket.go index 64ec42c7c..b921a1d91 100644 --- a/pkg/sentry/socket/hostinet/socket.go +++ b/pkg/sentry/socket/hostinet/socket.go @@ -401,6 +401,8 @@ func (s *socketOpsCommon) GetSockOpt(t *kernel.Task, level int, name int, optVal optlen = sizeofInt32 case linux.SO_LINGER: optlen = unix.SizeofLinger + case linux.SO_RCVTIMEO, linux.SO_SNDTIMEO: + optlen = linux.SizeOfTimeval } case linux.SOL_TCP: switch name { diff --git a/runsc/boot/filter/config.go b/runsc/boot/filter/config.go index 7929cad0f..33971dc15 100644 --- a/runsc/boot/filter/config.go +++ b/runsc/boot/filter/config.go @@ -474,6 +474,16 @@ func hostInetFilters() seccomp.SyscallRules { seccomp.EqualTo(unix.SOL_SOCKET), seccomp.EqualTo(unix.SO_TIMESTAMP), }, + { + seccomp.MatchAny{}, + seccomp.EqualTo(unix.SOL_SOCKET), + seccomp.EqualTo(unix.SO_RCVTIMEO), + }, + { + seccomp.MatchAny{}, + seccomp.EqualTo(unix.SOL_SOCKET), + seccomp.EqualTo(unix.SO_SNDTIMEO), + }, { seccomp.MatchAny{}, seccomp.EqualTo(unix.SOL_TCP),