summaryrefslogtreecommitdiffstats
path: root/sys/netinet/tcp_sack.c
diff options
context:
space:
mode:
authorps <ps@FreeBSD.org>2005-06-23 00:18:54 +0000
committerps <ps@FreeBSD.org>2005-06-23 00:18:54 +0000
commit1f7ded928de9d621a4a8c555506d31c02152828c (patch)
treee043aa917587bcd7c6359a0c909f782da33fa967 /sys/netinet/tcp_sack.c
parent4a65a73e5803446baf1d49bd2bce77e52b84bddd (diff)
downloadFreeBSD-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.c3
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.
OpenPOWER on IntegriCloud