Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1d1c397d authored by Jan Engelhardt's avatar Jan Engelhardt
Browse files

netfilter: xtables: clean up xt_mac match routine

parent 7d5f7ed8
Loading
Loading
Loading
Loading
+10 −8
Original line number Diff line number Diff line
@@ -27,13 +27,15 @@ MODULE_ALIAS("ip6t_mac");
static bool mac_mt(const struct sk_buff *skb, const struct xt_match_param *par)
{
	const struct xt_mac_info *info = par->matchinfo;

    /* Is mac pointer valid? */
    return skb_mac_header(skb) >= skb->head &&
	   skb_mac_header(skb) + ETH_HLEN <= skb->data
	   /* If so, compare... */
	   && ((!compare_ether_addr(eth_hdr(skb)->h_source, info->srcaddr))
		^ info->invert);
	bool ret;

	if (skb_mac_header(skb) < skb->head)
		return false;
	if (skb_mac_header(skb) + ETH_HLEN > skb->data)
		return false;
	ret  = compare_ether_addr(eth_hdr(skb)->h_source, info->srcaddr) == 0;
	ret ^= info->invert;
	return ret;
}

static struct xt_match mac_mt_reg __read_mostly = {