diff options
author | gVisor bot <gvisor-bot@google.com> | 2020-11-06 22:02:48 +0000 |
---|---|---|
committer | gVisor bot <gvisor-bot@google.com> | 2020-11-06 22:02:48 +0000 |
commit | ac5f800b3971e793eba7ae50e0a4b702546fbbdc (patch) | |
tree | 373507b802d1c96f344f1ee77aab0059b7408901 | |
parent | ee435928e3fb01146cf8f749ba0cec94fd75d0e8 (diff) | |
parent | 9e82747d62e57ee7498c8f3f54c313917891273a (diff) |
Merge release-20201030.0-44-g9e82747d6 (automated)
-rw-r--r-- | pkg/tcpip/transport/tcp/snd.go | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/pkg/tcpip/transport/tcp/snd.go b/pkg/tcpip/transport/tcp/snd.go index 6fa8d63cd..ab5fa4fb7 100644 --- a/pkg/tcpip/transport/tcp/snd.go +++ b/pkg/tcpip/transport/tcp/snd.go @@ -1285,6 +1285,10 @@ func (s *sender) checkDuplicateAck(seg *segment) (rtx bool) { // See: https://tools.ietf.org/html/draft-ietf-tcpm-rack-08#section-7.2 // steps 2 and 3. func (s *sender) walkSACK(rcvdSeg *segment) { + if len(rcvdSeg.parsedOptions.SACKBlocks) == 0 { + return + } + // Sort the SACK blocks. The first block is the most recent unacked // block. The following blocks can be in arbitrary order. sackBlocks := make([]header.SACKBlock, len(rcvdSeg.parsedOptions.SACKBlocks)) |