Module Name: src Committed By: maxv Date: Tue May 29 08:24:59 UTC 2018
Modified Files: src/sys/net: if_ethersubr.c Log Message: Replace KASSERT by m_pullup. While the ethernet header is always there when the packet was received on a physical interface, it may not be if the packet was received over L2TP/EtherIP. In particular, if the inner ethernet header ends up on two separate IP fragments. Here the KASSERT is triggered, and on !DIAGNOSTIC we corrupt memory. Note that this is a widespread problem: a lot of L2 code was written with the assumption that "most" headers are present in the first mbuf. Obviously, that's not true if L2 encapsulation is being used. To generate a diff of this commit: cvs rdiff -u -r1.266 -r1.267 src/sys/net/if_ethersubr.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.