Module Name: src
Committed By: martin
Date: Tue Dec 20 09:56:28 UTC 2022
Modified Files:
src/sys/nfs [netbsd-9]: nfs_srvsocket.c
Log Message:
Pull up following revision(s) (requested by hannken in ticket #1555):
sys/nfs/nfs_srvsocket.c: revision 1.5
When partitioning a mbuf chain with m_split() the last mbuf of the returned
tail chain is not necessarily the same as the last mbuf of the initial chain.
Always set "slp->ns_rawend" to the last mbuf of the tail chain to prevent
mbuf leaks and corruption.
To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.4.68.1 src/sys/nfs/nfs_srvsocket.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/nfs/nfs_srvsocket.c
diff -u src/sys/nfs/nfs_srvsocket.c:1.4 src/sys/nfs/nfs_srvsocket.c:1.4.68.1
--- src/sys/nfs/nfs_srvsocket.c:1.4 Thu Sep 3 20:59:12 2009
+++ src/sys/nfs/nfs_srvsocket.c Tue Dec 20 09:56:28 2022
@@ -1,4 +1,4 @@
-/* $NetBSD: nfs_srvsocket.c,v 1.4 2009/09/03 20:59:12 tls Exp $ */
+/* $NetBSD: nfs_srvsocket.c,v 1.4.68.1 2022/12/20 09:56:28 martin Exp $ */
/*
* Copyright (c) 1989, 1991, 1993, 1995
@@ -39,7 +39,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: nfs_srvsocket.c,v 1.4 2009/09/03 20:59:12 tls Exp $");
+__KERNEL_RCSID(0, "$NetBSD: nfs_srvsocket.c,v 1.4.68.1 2022/12/20 09:56:28 martin Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -323,8 +323,9 @@ nfsrv_getstream(struct nfssvc_sock *slp,
}
m_claimm(recm, &nfs_mowner);
slp->ns_raw = m;
- if (m->m_next == NULL)
- slp->ns_rawend = m;
+ while (m->m_next)
+ m = m->m_next;
+ slp->ns_rawend = m;
slp->ns_cc -= slp->ns_reclen;
slp->ns_reclen = 0;
} else {