svn commit: r347117 - stable/12/sys/netinet
Michael Tuexen
tuexen at FreeBSD.org
Sat May 4 12:52:25 UTC 2019
Author: tuexen
Date: Sat May 4 12:52:24 2019
New Revision: 347117
URL: https://svnweb.freebsd.org/changeset/base/347117
Log:
MFC r345494:
Fix the handling of fragmented unordered messages when using DATA chunks
and FORWARD-TSN.
This bug was reported in https://github.com/sctplab/usrsctp/issues/286
for the userland stack.
This is joint work with rrs at .
Modified:
stable/12/sys/netinet/sctp_indata.c
Directory Properties:
stable/12/ (props changed)
Modified: stable/12/sys/netinet/sctp_indata.c
==============================================================================
--- stable/12/sys/netinet/sctp_indata.c Sat May 4 12:49:55 2019 (r347116)
+++ stable/12/sys/netinet/sctp_indata.c Sat May 4 12:52:24 2019 (r347117)
@@ -947,6 +947,15 @@ sctp_inject_old_unordered_data(struct sctp_tcb *stcb,
SCTPDBG(SCTP_DEBUG_XXX,
"chunk is a first fsn: %u becomes fsn_included\n",
chk->rec.data.fsn);
+ at = TAILQ_FIRST(&control->reasm);
+ if (at && SCTP_TSN_GT(chk->rec.data.fsn, at->rec.data.fsn)) {
+ /*
+ * The first chunk in the reassembly is a smaller
+ * TSN than this one, even though this has a first,
+ * it must be from a subsequent msg.
+ */
+ goto place_chunk;
+ }
if (control->first_frag_seen) {
/*
* In old un-ordered we can reassembly on one
More information about the svn-src-all
mailing list