--- sys/dev/e1000/if_igb.c.orig 2014-01-09 16:33:39.000000000 +0100 +++ sys/dev/e1000/if_igb.c 2014-01-09 16:36:31.000000000 +0100 @@ -3883,6 +3883,7 @@ type_tucmd_mlhl |= E1000_ADVTXD_TUCMD_IPV4; break; case ETHERTYPE_IPV6: + KASSERT(ehdrlen + sizeof(struct ip6_hdr) <= mp->m_len, ("Ethernet and IPv6 header not contiguous")); ip6 = (struct ip6_hdr *)(mp->m_data + ehdrlen); ip_hlen = sizeof(struct ip6_hdr); /* XXX-BZ this will go badly in case of ext hdrs. */