Eric Leblond wrote:
+ /* compute hardware header length hwlen from mac_len, we suppose + * header field is [ HW DST ADDR | HW SRC ADDR | PROTO ] with + * proto code on two bytes. + * Thus, we have: + * hwlen = (mac_len - 2) / 2 + */ + if ((pkt->mac_len % 2) || (pkt->mac_len < 2)) { + ulogd_log(ULOGD_NOTICE, "Invalid mac_len (%d), rejecting" + " packet", pkt->mac_len); + return ULOGD_IRET_ERR; + } else + hwlen = (pkt->mac_len - 2) / 2;
Thats not correct. The mac header (which is badly named) includes the entire device specific header, for IPIP tunnels for example its the outer IP header. So this needs device specific logic. -- To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html