diff options
author | Sven Eckelmann <sven@narfation.org> | 2016-08-06 17:04:23 +0200 |
---|---|---|
committer | Simon Wunderlich <sw@simonwunderlich.de> | 2016-11-08 19:02:36 +0100 |
commit | 93bbaab455f30fd43911e0881a02107a17150a62 (patch) | |
tree | c300abd07ec9936f5b63f989b7228f27af0907be /net/batman-adv | |
parent | 92eef520d77d106d9ea06b17294c5079edefe95d (diff) | |
download | op-kernel-dev-93bbaab455f30fd43911e0881a02107a17150a62.zip op-kernel-dev-93bbaab455f30fd43911e0881a02107a17150a62.tar.gz |
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 <sven@narfation.org>
Signed-off-by: Simon Wunderlich <sw@simonwunderlich.de>
Diffstat (limited to 'net/batman-adv')
-rw-r--r-- | net/batman-adv/routing.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/net/batman-adv/routing.c b/net/batman-adv/routing.c index 4f034df..6713bdf 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 */ |