diff options
author | rrs <rrs@FreeBSD.org> | 2008-01-28 10:25:43 +0000 |
---|---|---|
committer | rrs <rrs@FreeBSD.org> | 2008-01-28 10:25:43 +0000 |
commit | 13897491cf6e6e0e91057676fd87677fb658a01a (patch) | |
tree | 379a1dd3057a5cee9676b47693dac400915c5123 | |
parent | 3043fa2dcad55ad5c0c175bbd66df5dd259e697a (diff) | |
download | FreeBSD-src-13897491cf6e6e0e91057676fd87677fb658a01a.zip FreeBSD-src-13897491cf6e6e0e91057676fd87677fb658a01a.tar.gz |
- Fixes a comparison wrap issue with sack gap ack blocks that
span the 32 bit roll over mark.
-rw-r--r-- | sys/netinet/sctp_indata.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/netinet/sctp_indata.c b/sys/netinet/sctp_indata.c index a7f43da..1c9c385 100644 --- a/sys/netinet/sctp_indata.c +++ b/sys/netinet/sctp_indata.c @@ -2874,7 +2874,7 @@ sctp_handle_segments(struct mbuf *m, int *offset, struct sctp_tcb *stcb, struct } last_frag_high = frag_end + last_tsn; } - for (j = frag_strt + last_tsn; j <= frag_end + last_tsn; j++) { + for (j = frag_strt + last_tsn; (compare_with_wrap((frag_end + last_tsn), j, MAX_TSN)); j++) { while (tp1) { if (tp1->rec.data.doing_fast_retransmit) num_frs++; |