Skip to content

Commit

Permalink
netfilter: xtables: clean up xt_mac match routine
Browse files Browse the repository at this point in the history
Signed-off-by: Jan Engelhardt <jengelh@medozas.de>
  • Loading branch information
Jan Engelhardt committed Mar 18, 2010
1 parent 7d5f7ed commit 1d1c397
Showing 1 changed file with 10 additions and 8 deletions.
18 changes: 10 additions & 8 deletions net/netfilter/xt_mac.c
Original file line number Diff line number Diff line change
Expand Up @@ -26,14 +26,16 @@ 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);
const struct xt_mac_info *info = par->matchinfo;
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 = {
Expand Down

0 comments on commit 1d1c397

Please sign in to comment.