Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 1 Oct 2020 16:23:35 +0000 (UTC)
From:      Michael Tuexen <tuexen@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org
Subject:   svn commit: r366324 - stable/12/sys/netinet
Message-ID:  <202010011623.091GNZYk024174@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: tuexen
Date: Thu Oct  1 16:23:35 2020
New Revision: 366324
URL: https://svnweb.freebsd.org/changeset/base/366324

Log:
  MFC r366198:
  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.

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	Thu Oct  1 16:22:34 2020	(r366323)
+++ stable/12/sys/netinet/sctp_indata.c	Thu Oct  1 16:23:35 2020	(r366324)
@@ -5430,7 +5430,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) {



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202010011623.091GNZYk024174>