svn commit: r364567 - stable/12/sys/netinet

Michael Tuexen tuexen at FreeBSD.org
Sun Aug 23 22:13:58 UTC 2020


Author: tuexen
Date: Sun Aug 23 22:13:57 2020
New Revision: 364567
URL: https://svnweb.freebsd.org/changeset/base/364567

Log:
  MFC r359300:
  Don't restore the vnet too early in error cases.

Modified:
  stable/12/sys/netinet/sctputil.c
Directory Properties:
  stable/12/   (props changed)

Modified: stable/12/sys/netinet/sctputil.c
==============================================================================
--- stable/12/sys/netinet/sctputil.c	Sun Aug 23 22:12:55 2020	(r364566)
+++ stable/12/sys/netinet/sctputil.c	Sun Aug 23 22:13:57 2020	(r364567)
@@ -1669,10 +1669,10 @@ sctp_timeout_handler(void *t)
 		    (type != SCTP_TIMER_TYPE_SHUTDOWNGUARD) &&
 		    (type != SCTP_TIMER_TYPE_ASOCKILL))) {
 			SCTP_INP_DECR_REF(inp);
-			CURVNET_RESTORE();
 			SCTPDBG(SCTP_DEBUG_TIMER2,
 			    "Timer type = %d handler exiting due to closed socket\n",
 			    type);
+			CURVNET_RESTORE();
 			return;
 		}
 	}
@@ -1684,10 +1684,10 @@ sctp_timeout_handler(void *t)
 			if (inp) {
 				SCTP_INP_DECR_REF(inp);
 			}
-			CURVNET_RESTORE();
 			SCTPDBG(SCTP_DEBUG_TIMER2,
 			    "Timer type = %d handler exiting due to CLOSED association\n",
 			    type);
+			CURVNET_RESTORE();
 			return;
 		}
 	}
@@ -1700,10 +1700,10 @@ sctp_timeout_handler(void *t)
 		if (stcb) {
 			atomic_add_int(&stcb->asoc.refcnt, -1);
 		}
-		CURVNET_RESTORE();
 		SCTPDBG(SCTP_DEBUG_TIMER2,
 		    "Timer type = %d handler exiting due to not being active\n",
 		    type);
+		CURVNET_RESTORE();
 		return;
 	}
 	tmr->stopped_from = 0xa004;
@@ -1718,10 +1718,10 @@ sctp_timeout_handler(void *t)
 			if (inp) {
 				SCTP_INP_DECR_REF(inp);
 			}
-			CURVNET_RESTORE();
 			SCTPDBG(SCTP_DEBUG_TIMER2,
 			    "Timer type = %d handler exiting due to CLOSED association\n",
 			    type);
+			CURVNET_RESTORE();
 			return;
 		}
 	} else if (inp != NULL) {


More information about the svn-src-all mailing list