diff options
author | Alexander Bluhm <bluhm@cvs.openbsd.org> | 2013-02-16 14:34:53 +0000 |
---|---|---|
committer | Alexander Bluhm <bluhm@cvs.openbsd.org> | 2013-02-16 14:34:53 +0000 |
commit | 17219c464fa4caa12f026354b395daffe67e5e7c (patch) | |
tree | 0e8f987f84a2d4c277928934c20267768d57c415 /sys/netinet | |
parent | 62f6547baa08a687888b13de1e3e624bc3b3da0e (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.c | 8 |
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 |