Page MenuHomeFreeBSD

Update the fragment reassembly code's handling of overlapping fragments to conform to RFC 8200.
Needs RevisionPublic

Authored by jtl on Aug 22 2018, 5:31 PM.

Details

Reviewers
bz
tuexen
Summary

Update the fragment reassembly code's handling of overlapping fragments to conform to RFC 8200.

RFC 8200 specifies that "[i]f any of the fragments being reassembled overlap with any other fragments being reassembled for the same packet, reassembly of that packet must be abandoned and all the fragments that have been received for that packet must be discarded, and no ICMP error messages should be sent."

It goes on to make an optional exception for exact duplicates.

Diff Detail

Lint
Lint OK
Unit
No Unit Test Coverage
Build Status
Buildable 19057
Build 18688: arc lint + arc unit

Event Timeline

jtl created this revision.Aug 22 2018, 5:31 PM
tuexen accepted this revision.Aug 23 2018, 12:29 AM
This revision is now accepted and ready to land.Aug 23 2018, 12:29 AM
bz accepted this revision.Aug 24 2018, 9:47 PM

Ignoring the unrelated noise removing the #if 0 block the functional changes seem fine.

sys/netinet6/frag6.c
538

Removing this block has nothing to do with the commit but I am happy it's been done (as stated on the other review). Want to just get it out of the noise?

548

Thanks for the RFC reference!!! :)))

bz requested changes to this revision.Jul 31 2019, 12:30 PM

I changed my mind...

sys/netinet6/frag6.c
519

Just saying, this is a bad idea of a use-after-free (here and below) as ip6af just got freed before used for a comparison. I'll deal with it.

This revision now requires changes to proceed.Jul 31 2019, 12:30 PM