diff options
author | gVisor bot <gvisor-bot@google.com> | 2019-08-19 19:52:11 +0000 |
---|---|---|
committer | gVisor bot <gvisor-bot@google.com> | 2019-08-19 19:52:11 +0000 |
commit | 1a037784f01c5eff9b1a1dd89d50eab39370f189 (patch) | |
tree | a31b0dca952b62b0315465fd6b97c7d7f8a8ece1 /pkg/sentry/socket/hostinet | |
parent | e2b43d815e1e98b93c578058832a52a6aa117ce0 (diff) | |
parent | 3ffbdffd7e96e406fd3136818e0402cf0c2f0d4d (diff) |
Merge 3ffbdffd (automated)
Diffstat (limited to 'pkg/sentry/socket/hostinet')
-rw-r--r-- | pkg/sentry/socket/hostinet/stack.go | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/pkg/sentry/socket/hostinet/stack.go b/pkg/sentry/socket/hostinet/stack.go index 1902fe155..3a4fdec47 100644 --- a/pkg/sentry/socket/hostinet/stack.go +++ b/pkg/sentry/socket/hostinet/stack.go @@ -203,8 +203,14 @@ func ExtractHostRoutes(routeMsgs []syscall.NetlinkMessage) ([]inet.Route, error) inetRoute.DstAddr = attr.Value case syscall.RTA_SRC: inetRoute.SrcAddr = attr.Value - case syscall.RTA_OIF: + case syscall.RTA_GATEWAY: inetRoute.GatewayAddr = attr.Value + case syscall.RTA_OIF: + expected := int(binary.Size(inetRoute.OutputInterface)) + if len(attr.Value) != expected { + return nil, fmt.Errorf("RTM_GETROUTE returned RTM_NEWROUTE message with invalid attribute data length (%d bytes, expected %d bytes)", len(attr.Value), expected) + } + binary.Unmarshal(attr.Value, usermem.ByteOrder, &inetRoute.OutputInterface) } } |