aboutsummaryrefslogtreecommitdiff
path: root/sys/netpfil/pf
diff options
context:
space:
mode:
authorKristof Provost <kp@FreeBSD.org>2015-06-11 13:26:16 +0000
committerKristof Provost <kp@FreeBSD.org>2015-06-11 13:26:16 +0000
commit837b925abaf9db35055f689ad83a82627cc8b961 (patch)
tree797e90b1d15829afa0353a285e5a453abf67983c /sys/netpfil/pf
parent49672bcc54d103349b8bc0f3d99ce7734b694319 (diff)
downloadsrc-837b925abaf9db35055f689ad83a82627cc8b961.tar.gz
src-837b925abaf9db35055f689ad83a82627cc8b961.zip
pf: Save the protocol number in the pf_fragment
When we try to look up a pf_fragment with pf_find_fragment() we compare (see pf_frag_compare()) addresses (and family), id but also protocol. We failed to save the protocol to the pf_fragment in pf_fragcache(), resulting in failing reassembly. Differential Revision: https://reviews.freebsd.org/D2772
Notes
Notes: svn path=/head/; revision=284260
Diffstat (limited to 'sys/netpfil/pf')
-rw-r--r--sys/netpfil/pf/pf_norm.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/sys/netpfil/pf/pf_norm.c b/sys/netpfil/pf/pf_norm.c
index 3888ef65b2ba..abf878f72ef7 100644
--- a/sys/netpfil/pf/pf_norm.c
+++ b/sys/netpfil/pf/pf_norm.c
@@ -824,6 +824,7 @@ pf_fragcache(struct mbuf **m0, struct ip *h, struct pf_fragment **frag, int mff,
(*frag)->fr_src.v4 = h->ip_src;
(*frag)->fr_dst.v4 = h->ip_dst;
(*frag)->fr_af = AF_INET;
+ (*frag)->fr_proto = h->ip_p;
(*frag)->fr_id = h->ip_id;
(*frag)->fr_timeout = time_uptime;