Print this page
9560 IPv4 packets in IPv6 ethernet frames panic debug builds
Reviewed by: Jorge Schrauwen <jorge@blackdot.be>
*** 1787,1798 ****
/*
* Do src based fanout if below tunable is set to B_TRUE or
* when mac_ip_hdr_length_v6() fails because of malformed
* packets or because mblks need to be concatenated using
* pullupmsg().
*/
! if (!mac_ip_hdr_length_v6(ip6h, mp->b_wptr, &hdr_len, &nexthdr,
NULL)) {
goto src_dst_based_fanout;
}
} else {
hdr_len = IPH_HDR_LENGTH(ipha);
--- 1787,1801 ----
/*
* Do src based fanout if below tunable is set to B_TRUE or
* when mac_ip_hdr_length_v6() fails because of malformed
* packets or because mblks need to be concatenated using
* pullupmsg().
+ *
+ * Perform a version check to prevent parsing weirdness...
*/
! if (IPH_HDR_VERSION(ip6h) != IPV6_VERSION ||
! !mac_ip_hdr_length_v6(ip6h, mp->b_wptr, &hdr_len, &nexthdr,
NULL)) {
goto src_dst_based_fanout;
}
} else {
hdr_len = IPH_HDR_LENGTH(ipha);