summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorru <ru@FreeBSD.org>2006-02-21 13:04:39 +0000
committerru <ru@FreeBSD.org>2006-02-21 13:04:39 +0000
commitb6c14cf89a1d2d3974db92f53b5c53bfcf1d8e07 (patch)
treecac9a57ae11680ef4a7b538e6f1227494a17a04f
parent0f32580a804b1e9f14a9c6526e681433e2e4e822 (diff)
downloadFreeBSD-src-b6c14cf89a1d2d3974db92f53b5c53bfcf1d8e07.zip
FreeBSD-src-b6c14cf89a1d2d3974db92f53b5c53bfcf1d8e07.tar.gz
Clear csum_flags after reading data from socket buffer. Otherwise,
if ksocket is connected to an interface-type node somewhere later in the graph (e.g., ng_eiface or ng_iface), the csum_data may be applied to a wrong packet (if we encapsulate Ethernet or IP). MFC after: 3 days
-rw-r--r--sys/netgraph/ng_ksocket.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/sys/netgraph/ng_ksocket.c b/sys/netgraph/ng_ksocket.c
index e2f466c..6f5f492 100644
--- a/sys/netgraph/ng_ksocket.c
+++ b/sys/netgraph/ng_ksocket.c
@@ -1120,6 +1120,7 @@ ng_ksocket_incoming2(node_p node, hook_p hook, void *arg1, int waitflag)
* Also, do not trust that soreceive() will clear m_nextpkt
* for us (e.g. kern/84952, kern/82413).
*/
+ m->m_pkthdr.csum_flags = 0;
for (n = m, m->m_pkthdr.len = 0; n != NULL; n = n->m_next) {
m->m_pkthdr.len += n->m_len;
n->m_nextpkt = NULL;
OpenPOWER on IntegriCloud