From: Sven Eckelmann Date: Sat, 6 Aug 2016 15:04:23 +0000 (+0200) Subject: batman-adv: Reject unicast packet with zero/mcast dst address X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=93bbaab455f30fd43911e0881a02107a17150a62;p=linux.git batman-adv: Reject unicast packet with zero/mcast dst address An unicast batman-adv packet cannot be transmitted to a multicast or zero mac address. So reject incoming packets which still have these classes of addresses as destination mac address in the outer ethernet header. Signed-off-by: Sven Eckelmann Signed-off-by: Simon Wunderlich --- diff --git a/net/batman-adv/routing.c b/net/batman-adv/routing.c index 4f034df09a5a7..6713bdf414cda 100644 --- a/net/batman-adv/routing.c +++ b/net/batman-adv/routing.c @@ -364,8 +364,8 @@ int batadv_recv_icmp_packet(struct sk_buff *skb, ethhdr = eth_hdr(skb); - /* packet with unicast indication but broadcast recipient */ - if (is_broadcast_ether_addr(ethhdr->h_dest)) + /* packet with unicast indication but non-unicast recipient */ + if (!is_valid_ether_addr(ethhdr->h_dest)) goto free_skb; /* packet with broadcast/multicast sender address */ @@ -462,8 +462,8 @@ static int batadv_check_unicast_packet(struct batadv_priv *bat_priv, ethhdr = eth_hdr(skb); - /* packet with unicast indication but broadcast recipient */ - if (is_broadcast_ether_addr(ethhdr->h_dest)) + /* packet with unicast indication but non-unicast recipient */ + if (!is_valid_ether_addr(ethhdr->h_dest)) return -EBADR; /* packet with broadcast/multicast sender address */