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);