Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 7 Sep 2015 14:00:39 +0000 (UTC)
From:      Michael Tuexen <tuexen@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r287535 - head/sys/netinet
Message-ID:  <201509071400.t87E0dHW064632@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: tuexen
Date: Mon Sep  7 14:00:38 2015
New Revision: 287535
URL: https://svnweb.freebsd.org/changeset/base/287535

Log:
  RFC 4960 requires that packets containing an INIT chunk bundled with
  another chunk are silently discarded. Do so, instead of sending an
  ABORT.
  
  MFC after:	1 week

Modified:
  head/sys/netinet/sctp_input.c

Modified: head/sys/netinet/sctp_input.c
==============================================================================
--- head/sys/netinet/sctp_input.c	Mon Sep  7 13:43:05 2015	(r287534)
+++ head/sys/netinet/sctp_input.c	Mon Sep  7 14:00:38 2015	(r287535)
@@ -4819,13 +4819,11 @@ process_control_chunks:
 			/* The INIT chunk must be the only chunk. */
 			if ((num_chunks > 1) ||
 			    (length - *offset > (int)SCTP_SIZE32(chk_length))) {
-				op_err = sctp_generate_cause(SCTP_BASE_SYSCTL(sctp_diag_info_code),
-				    "INIT not the only chunk");
-				sctp_abort_association(inp, stcb, m, iphlen,
-				    src, dst, sh, op_err,
-				    mflowtype, mflowid,
-				    vrf_id, port);
+				/* RFC 4960 requires that no ABORT is sent */
 				*offset = length;
+				if (locked_tcb) {
+					SCTP_TCB_UNLOCK(locked_tcb);
+				}
 				return (NULL);
 			}
 			/* Honor our resource limit. */



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