HomeFreeBSD

Do not generate illegal mbuf chains during IP fragment reassembly. Only

Description

Do not generate illegal mbuf chains during IP fragment reassembly. Only
the first mbuf of the reassembled datagram should have a pkthdr.

This was discovered with cxgbe(4) + IPSEC + ping with payload more than
interface MTU. cxgbe can generate !M_WRITEABLE mbufs and this results
in m_unshare being called on the reassembled datagram, and it complains:

panic: m_unshare: m0 0xfffff80020f82600, m 0xfffff8005d054100 has M_PKTHDR

PR: 224922
Reviewed by: ae@
MFC after: 1 week
Sponsored by: Chelsio Communications
Differential Revision: https://reviews.freebsd.org/D14009

Details

Provenance
npAuthored on
Differential Revision
D14009: Do not generate illegal mbuf chains during IP fragment reassembly.
Parents
rS328313: pf: States have at least two references
Branches
Unknown
Tags
Unknown