The SACK code was panicking, but it is possible to have length = 0 (on a
SYN or FIN).  We can just ignore any potential SACK updates in those
cases.

Signed-off-by: Barret Rhoden <[email protected]>
---

Merged to master at 734fb3e242e2..770ca98bc691 (from, to]

You can see the entire diff with 'git diff' or at
https://github.com/brho/akaros/compare/734fb3e242e2...770ca98bc691

 kern/src/net/tcp.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/kern/src/net/tcp.c b/kern/src/net/tcp.c
index 887057cd1d7f..898eb8701b5d 100644
--- a/kern/src/net/tcp.c
+++ b/kern/src/net/tcp.c
@@ -2129,6 +2129,8 @@ static void track_rcv_sack(Tcpctl *tcb, uint32_t left, 
uint32_t right)
 
        if (!tcb->sack_ok)
                return;
+       if (left == right)
+               return;
        assert(seq_lt(left, right));
        sack->left = left;
        sack->right = right;
-- 
2.14.3

-- 
You received this message because you are subscribed to the Google Groups 
"Akaros" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to