Author: tuexen
Date: Sun Sep 27 13:24:01 2020
New Revision: 366198
URL: https://svnweb.freebsd.org/changeset/base/366198

Log:
  Improve the handling of receiving unordered and unreliable user
  messages using DATA chunks. Don't use fsn_included when not being
  sure that it is set to an appropriate value. If the default is
  used, which is -1, this can result in SCTP associaitons not
  making any user visible progress.
  
  Thanks to Yutaka Takeda for reporting this issue for the the
  userland stack in https://github.com/pion/sctp/issues/138.
  
  MFC after:            3 days

Modified:
  head/sys/netinet/sctp_indata.c

Modified: head/sys/netinet/sctp_indata.c
==============================================================================
--- head/sys/netinet/sctp_indata.c      Sun Sep 27 11:37:17 2020        
(r366197)
+++ head/sys/netinet/sctp_indata.c      Sun Sep 27 13:24:01 2020        
(r366198)
@@ -5403,7 +5403,9 @@ sctp_flush_reassm_for_str_seq(struct sctp_tcb *stcb,
         * it can be delivered... But for now we just dump everything on the
         * queue.
         */
-       if (!asoc->idata_supported && !ordered && 
SCTP_TSN_GT(control->fsn_included, cumtsn)) {
+       if (!asoc->idata_supported && !ordered &&
+           control->first_frag_seen &&
+           SCTP_TSN_GT(control->fsn_included, cumtsn)) {
                return;
        }
        TAILQ_FOREACH_SAFE(chk, &control->reasm, sctp_next, nchk) {
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to