Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 4 Jul 2013 19:47:46 +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: r252718 - head/sys/netinet
Message-ID:  <201307041947.r64JlkM1020378@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: tuexen
Date: Thu Jul  4 19:47:46 2013
New Revision: 252718
URL: http://svnweb.freebsd.org/changeset/base/252718

Log:
  When processing an incoming ABORT, SHUTDOWN_COMPLETE or ERROR (NAT related)
  chunk, take always the T-bit into account, when checking the verification
  tag.
  
  MFC after: 3 days

Modified:
  head/sys/netinet/sctp_input.c

Modified: head/sys/netinet/sctp_input.c
==============================================================================
--- head/sys/netinet/sctp_input.c	Thu Jul  4 19:45:34 2013	(r252717)
+++ head/sys/netinet/sctp_input.c	Thu Jul  4 19:47:46 2013	(r252718)
@@ -4568,8 +4568,10 @@ __attribute__((noinline))
 		if ((ch->chunk_type == SCTP_ABORT_ASSOCIATION) ||
 		    (ch->chunk_type == SCTP_SHUTDOWN_COMPLETE) ||
 		    (ch->chunk_type == SCTP_PACKET_DROPPED)) {
-			if ((vtag_in == asoc->my_vtag) ||
-			    ((ch->chunk_flags & SCTP_HAD_NO_TCB) &&
+			/* Take the T-bit always into account. */
+			if ((((ch->chunk_flags & SCTP_HAD_NO_TCB) == 0) &&
+			    (vtag_in == asoc->my_vtag)) ||
+			    (((ch->chunk_flags & SCTP_HAD_NO_TCB) == SCTP_HAD_NO_TCB) &&
 			    (vtag_in == asoc->peer_vtag))) {
 				/* this is valid */
 			} else {



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