Module Name:    src
Committed By:   martin
Date:           Mon Nov 12 12:23:20 UTC 2018

Modified Files:
        src/sys/kern [netbsd-8]: uipc_usrreq.c
        src/sys/netipsec [netbsd-8]: keysock.c

Log Message:
Pull up following revision(s) (requested by roy in ticket #1092):

        sys/netipsec/keysock.c: revision 1.66
        sys/kern/uipc_usrreq.c: revision 1.187

Don't call soroverflow when we return the error to the sender.

Thanks to thorpej@ for a sanity check.


To generate a diff of this commit:
cvs rdiff -u -r1.181.8.2 -r1.181.8.3 src/sys/kern/uipc_usrreq.c
cvs rdiff -u -r1.58.2.2 -r1.58.2.3 src/sys/netipsec/keysock.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/kern/uipc_usrreq.c
diff -u src/sys/kern/uipc_usrreq.c:1.181.8.2 src/sys/kern/uipc_usrreq.c:1.181.8.3
--- src/sys/kern/uipc_usrreq.c:1.181.8.2	Sat May 12 10:42:22 2018
+++ src/sys/kern/uipc_usrreq.c	Mon Nov 12 12:23:20 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: uipc_usrreq.c,v 1.181.8.2 2018/05/12 10:42:22 martin Exp $	*/
+/*	$NetBSD: uipc_usrreq.c,v 1.181.8.3 2018/11/12 12:23:20 martin Exp $	*/
 
 /*-
  * Copyright (c) 1998, 2000, 2004, 2008, 2009 The NetBSD Foundation, Inc.
@@ -96,7 +96,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: uipc_usrreq.c,v 1.181.8.2 2018/05/12 10:42:22 martin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: uipc_usrreq.c,v 1.181.8.3 2018/11/12 12:23:20 martin Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -332,11 +332,13 @@ unp_output(struct mbuf *m, struct mbuf *
 		unp_dispose(control);
 		m_freem(control);
 		m_freem(m);
-		soroverflow(so2);
-		return (ENOBUFS);
+		/* Don't call soroverflow because we're returning this
+		 * error directly to the sender. */
+		so2->so_rcv.sb_overflowed++;
+		return ENOBUFS;
 	} else {
 		sorwakeup(so2);
-		return (0);
+		return 0;
 	}
 }
 

Index: src/sys/netipsec/keysock.c
diff -u src/sys/netipsec/keysock.c:1.58.2.2 src/sys/netipsec/keysock.c:1.58.2.3
--- src/sys/netipsec/keysock.c:1.58.2.2	Mon Apr  9 13:34:10 2018
+++ src/sys/netipsec/keysock.c	Mon Nov 12 12:23:20 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: keysock.c,v 1.58.2.2 2018/04/09 13:34:10 bouyer Exp $	*/
+/*	$NetBSD: keysock.c,v 1.58.2.3 2018/11/12 12:23:20 martin Exp $	*/
 /*	$FreeBSD: src/sys/netipsec/keysock.c,v 1.3.2.1 2003/01/24 05:11:36 sam Exp $	*/
 /*	$KAME: keysock.c,v 1.25 2001/08/13 20:07:41 itojun Exp $	*/
 
@@ -32,7 +32,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: keysock.c,v 1.58.2.2 2018/04/09 13:34:10 bouyer Exp $");
+__KERNEL_RCSID(0, "$NetBSD: keysock.c,v 1.58.2.3 2018/11/12 12:23:20 martin Exp $");
 
 /* This code has derived from sys/net/rtsock.c on FreeBSD2.2.5 */
 
@@ -207,7 +207,9 @@ key_sendup0(
 		    __func__);
 		PFKEY_STATINC(PFKEY_STAT_IN_NOMEM);
 		m_freem(m);
-		soroverflow(rp->rcb_socket);
+		/* Don't call soroverflow because we're returning this
+		 * error directly to the sender. */
+		rp->rcb_socket->so_rcv.sb_overflowed++;
 		error = ENOBUFS;
 	} else {
 		sorwakeup(rp->rcb_socket);

Reply via email to