summaryrefslogtreecommitdiffhomepage
path: root/pkg/sentry/socket
diff options
context:
space:
mode:
authorAndrei Vagin <avagin@google.com>2019-05-28 22:28:01 -0700
committerShentubot <shentubot@google.com>2019-05-30 12:06:15 -0700
commit4b9cb381572e0f61f2a6c2259094548172900e0d (patch)
tree8f995b4453216f545a27249bbf28a4f354aecc5d /pkg/sentry/socket
parent507a15dce974d0cff18253ba50af29d6579bacc5 (diff)
gvisor: socket() returns EPROTONOSUPPORT if protocol is not supported
PiperOrigin-RevId: 250426407
Diffstat (limited to 'pkg/sentry/socket')
-rw-r--r--pkg/sentry/socket/epsocket/provider.go2
-rw-r--r--pkg/sentry/socket/unix/unix.go8
2 files changed, 5 insertions, 5 deletions
diff --git a/pkg/sentry/socket/epsocket/provider.go b/pkg/sentry/socket/epsocket/provider.go
index fb1815c2d..ec930d8d5 100644
--- a/pkg/sentry/socket/epsocket/provider.go
+++ b/pkg/sentry/socket/epsocket/provider.go
@@ -76,7 +76,7 @@ func getTransportProtocol(ctx context.Context, stype transport.SockType, protoco
return header.TCPProtocolNumber, nil
}
}
- return 0, syserr.ErrInvalidArgument
+ return 0, syserr.ErrProtocolNotSupported
}
// Socket creates a new socket object for the AF_INET or AF_INET6 family.
diff --git a/pkg/sentry/socket/unix/unix.go b/pkg/sentry/socket/unix/unix.go
index 931056d51..1414be0c6 100644
--- a/pkg/sentry/socket/unix/unix.go
+++ b/pkg/sentry/socket/unix/unix.go
@@ -598,8 +598,8 @@ type provider struct{}
// Socket returns a new unix domain socket.
func (*provider) Socket(t *kernel.Task, stype transport.SockType, protocol int) (*fs.File, *syserr.Error) {
// Check arguments.
- if protocol != 0 {
- return nil, syserr.ErrInvalidArgument
+ if protocol != 0 && protocol != linux.AF_UNIX /* PF_UNIX */ {
+ return nil, syserr.ErrProtocolNotSupported
}
// Create the endpoint and socket.
@@ -624,8 +624,8 @@ func (*provider) Socket(t *kernel.Task, stype transport.SockType, protocol int)
// Pair creates a new pair of AF_UNIX connected sockets.
func (*provider) Pair(t *kernel.Task, stype transport.SockType, protocol int) (*fs.File, *fs.File, *syserr.Error) {
// Check arguments.
- if protocol != 0 {
- return nil, nil, syserr.ErrInvalidArgument
+ if protocol != 0 && protocol != linux.AF_UNIX /* PF_UNIX */ {
+ return nil, nil, syserr.ErrProtocolNotSupported
}
var isPacket bool