freebsd-dev/sys/netpfil/pf
Kristof Provost 00eab743ab pf: Fix possible incorrect IPv6 fragmentation
When forwarding pf tracks the size of the largest fragment in a fragmented
packet, and refragments based on this size.
It failed to ensure that this size was a multiple of 8 (as is required for all
but the last fragment), so it could end up generating incorrect fragments.

For example, if we received an 8 byte and 12 byte fragment pf would emit a first
fragment with 12 bytes of payload and the final fragment would claim to be at
offset 8 (not 12).

We now assert that the fragment size is a multiple of 8 in ip6_fragment(), so
other users won't make the same mistake.

Reported by:	Antonios Atlasis <aatlasis at secfu net>
MFC after:	3 days
2017-04-20 09:05:53 +00:00
..
if_pflog.c pflog: Correctly initialise subrulenr 2016-12-05 21:52:10 +00:00
if_pfsync.c Improve upon r309394 2016-12-10 03:31:38 +00:00
in4_cksum.c
pf_altq.h Add ALTQ(9) support for the CoDel algorithm. 2015-08-21 22:02:22 +00:00
pf_if.c Remove ifa_list, use ifa_link (structure field) instead. 2016-09-28 13:29:11 +00:00
pf_ioctl.c pf: Also clear limit counters 2017-04-18 20:07:21 +00:00
pf_lb.c pf: Fix a crash in low-memory situations 2017-03-06 23:41:23 +00:00
pf_mtag.h ALTQ FAIRQ discipline import from DragonFLY 2015-06-24 19:16:41 +00:00
pf_norm.c pf: Fix possible incorrect IPv6 fragmentation 2017-04-20 09:05:53 +00:00
pf_osfp.c pf: use inet_ntoa_r() instead of inet_ntoa(); maybe fix IPv6 OS fingerprinting 2017-02-16 20:44:44 +00:00
pf_ruleset.c
pf_table.c MFP r287070,r287073: split radix implementation and route table structure. 2016-01-25 06:33:15 +00:00
pf.c pf: Fix leak of pf_state_keys 2017-04-01 12:22:34 +00:00
pf.h