diff options
author | ps <ps@FreeBSD.org> | 2005-06-23 00:18:54 +0000 |
---|---|---|
committer | ps <ps@FreeBSD.org> | 2005-06-23 00:18:54 +0000 |
commit | 1f7ded928de9d621a4a8c555506d31c02152828c (patch) | |
tree | e043aa917587bcd7c6359a0c909f782da33fa967 /sys/netinet/tcp_sack.c | |
parent | 4a65a73e5803446baf1d49bd2bce77e52b84bddd (diff) | |
download | FreeBSD-src-1f7ded928de9d621a4a8c555506d31c02152828c.zip FreeBSD-src-1f7ded928de9d621a4a8c555506d31c02152828c.tar.gz |
Fix for a bug in tcp_sack_option() causing crashes.
Submitted by: Noritoshi Demizu, Mohan Srinivasan.
Approved by: re (scottl blanket SACK)
Diffstat (limited to 'sys/netinet/tcp_sack.c')
-rw-r--r-- | sys/netinet/tcp_sack.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/sys/netinet/tcp_sack.c b/sys/netinet/tcp_sack.c index b1d7327..945ab9e 100644 --- a/sys/netinet/tcp_sack.c +++ b/sys/netinet/tcp_sack.c @@ -474,8 +474,7 @@ tcp_sack_option(struct tcpcb *tp, struct tcphdr *th, u_char *cp, int optlen) * Since the incoming sack blocks are sorted, we can process them * making one sweep of the scoreboard. */ - while (sblkp - sack_blocks >= 0) { - KASSERT(cur != NULL, ("cur != NULL")); + while (sblkp - sack_blocks >= 0 && cur != NULL) { if (SEQ_GEQ(sblkp->start, cur->end)) { /* * SACKs data beyond the current hole. |