Module Name:    src
Committed By:   christos
Date:           Mon Jan  2 02:38:54 UTC 2017

Modified Files:
        src/sys/netinet: tcp_output.c

Log Message:
make sure that the reset label is defined without TCP_SIGNATURE.


To generate a diff of this commit:
cvs rdiff -u -r1.188 -r1.189 src/sys/netinet/tcp_output.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/netinet/tcp_output.c
diff -u src/sys/netinet/tcp_output.c:1.188 src/sys/netinet/tcp_output.c:1.189
--- src/sys/netinet/tcp_output.c:1.188	Sun Jan  1 20:18:42 2017
+++ src/sys/netinet/tcp_output.c	Sun Jan  1 21:38:54 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: tcp_output.c,v 1.188 2017/01/02 01:18:42 christos Exp $	*/
+/*	$NetBSD: tcp_output.c,v 1.189 2017/01/02 02:38:54 christos Exp $	*/
 
 /*
  * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
@@ -135,7 +135,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: tcp_output.c,v 1.188 2017/01/02 01:18:42 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: tcp_output.c,v 1.189 2017/01/02 02:38:54 christos Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_inet.h"
@@ -1225,19 +1225,15 @@ send:
 		/*
 		 * Initialize TCP-MD5 option (RFC2385)
 		 */
-		if (OPT_FITS(TCPOLEN_SIGNATURE)) {
-			*optp++ = TCPOPT_SIGNATURE;
-			*optp++ = TCPOLEN_SIGNATURE;
-			sigoff = optlen + 2;
-			memset(optp, 0, TCP_SIGLEN);
-			optlen += TCPOLEN_SIGNATURE;
-			optp += TCP_SIGLEN;
-		} else {
-reset:
-			TCP_REASS_UNLOCK(tp);
-			error = ECONNABORTED;
-			goto out;
-		}
+		if (!OPT_FITS(TCPOLEN_SIGNATURE))
+			goto reset;
+		
+		*optp++ = TCPOPT_SIGNATURE;
+		*optp++ = TCPOLEN_SIGNATURE;
+		sigoff = optlen + 2;
+		memset(optp, 0, TCP_SIGLEN);
+		optlen += TCPOLEN_SIGNATURE;
+		optp += TCP_SIGLEN;
 	}
 #endif /* TCP_SIGNATURE */
 
@@ -1282,8 +1278,11 @@ reset:
 
 	/* Terminate and pad TCP options to a 4 byte boundary. */
 	if (optlen % 4) {
-		if (!OPT_FITS(1))
-			goto reset;
+		if (!OPT_FITS(1)) {
+reset:			 TCP_REASS_UNLOCK(tp);
+			error = ECONNABORTED;
+			goto out;
+		}
 		optlen += TCPOLEN_EOL;
 		*optp++ = TCPOPT_EOL;
 	}

Reply via email to