summaryrefslogtreecommitdiff
path: root/sys/netinet
diff options
context:
space:
mode:
authorAlexander Bluhm <bluhm@cvs.openbsd.org>2013-02-16 14:34:53 +0000
committerAlexander Bluhm <bluhm@cvs.openbsd.org>2013-02-16 14:34:53 +0000
commit17219c464fa4caa12f026354b395daffe67e5e7c (patch)
tree0e8f987f84a2d4c277928934c20267768d57c415 /sys/netinet
parent62f6547baa08a687888b13de1e3e624bc3b3da0e (diff)
Fix a bug in udp socket splicing in case a packet gets diverted and
spliced and routed to loopback. The content of the pf header in the mbuf was keeping the divert information on its way. Reinitialize the whole packet header of the mbuf and remove the mbuf tags when the packet gets spliced. OK claudio@ markus@
Diffstat (limited to 'sys/netinet')
-rw-r--r--sys/netinet/udp_usrreq.c8
1 files changed, 2 insertions, 6 deletions
diff --git a/sys/netinet/udp_usrreq.c b/sys/netinet/udp_usrreq.c
index 1a869c94310..f2286c3a571 100644
--- a/sys/netinet/udp_usrreq.c
+++ b/sys/netinet/udp_usrreq.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: udp_usrreq.c,v 1.152 2013/01/17 11:43:06 bluhm Exp $ */
+/* $OpenBSD: udp_usrreq.c,v 1.153 2013/02/16 14:34:52 bluhm Exp $ */
/* $NetBSD: udp_usrreq.c,v 1.28 1996/03/16 23:54:03 christos Exp $ */
/*
@@ -621,11 +621,7 @@ udp_input(struct mbuf *m, ...)
}
#if NPF > 0
- /*
- * The statekey has finished finding the inp, it is no longer needed.
- * If UDP socket splicing is used, the statekey will confuse pf when
- * the same packet goes through ip_output(). So reset the statekey.
- */
+ /* The statekey has finished finding the inp, it is no longer needed. */
m->m_pkthdr.pf.statekey = NULL;
#endif