Merge release-20191114.0-27-g2b1b51f (automated)

This commit is contained in:
gVisor bot 2019-11-25 17:14:51 +00:00
commit 4fa6994346
1 changed files with 14 additions and 0 deletions

View File

@ -49,6 +49,13 @@ var LogPackets uint32 = 1
// LogPacketsToFile must be accessed atomically.
var LogPacketsToFile uint32 = 1
var transportProtocolMinSizes map[tcpip.TransportProtocolNumber]int = map[tcpip.TransportProtocolNumber]int{
header.ICMPv4ProtocolNumber: header.IPv4MinimumSize,
header.ICMPv6ProtocolNumber: header.IPv6MinimumSize,
header.UDPProtocolNumber: header.UDPMinimumSize,
header.TCPProtocolNumber: header.TCPMinimumSize,
}
type endpoint struct {
dispatcher stack.NetworkDispatcher
lower stack.LinkEndpoint
@ -333,6 +340,13 @@ func logPacket(prefix string, protocol tcpip.NetworkProtocolNumber, b buffer.Vie
return
}
// We aren't guaranteed to have a transport header - it's possible for
// writes via raw endpoints to contain only network headers.
if minSize, ok := transportProtocolMinSizes[tcpip.TransportProtocolNumber(transProto)]; ok && len(b) < minSize {
log.Infof("%s %v -> %v transport protocol: %d, but no transport header found (possible raw packet)", prefix, src, dst, transProto)
return
}
// Figure out the transport layer info.
transName := "unknown"
srcPort := uint16(0)