diff options
author | ru <ru@FreeBSD.org> | 2006-02-21 13:04:39 +0000 |
---|---|---|
committer | ru <ru@FreeBSD.org> | 2006-02-21 13:04:39 +0000 |
commit | b6c14cf89a1d2d3974db92f53b5c53bfcf1d8e07 (patch) | |
tree | cac9a57ae11680ef4a7b538e6f1227494a17a04f | |
parent | 0f32580a804b1e9f14a9c6526e681433e2e4e822 (diff) | |
download | FreeBSD-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.c | 1 |
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; |