net: hsr: validate address B before copying to skb
authorMurali Karicheri <m-karicheri2@ti.com>
Fri, 17 Jul 2020 14:55:10 +0000 (10:55 -0400)
committerDavid S. Miller <davem@davemloft.net>
Sat, 18 Jul 2020 01:54:37 +0000 (18:54 -0700)
Validate MAC address before copying the same to outgoing frame
skb destination address. Since a node can have zero mac
address for Link B until a valid frame is received over
that link, this fix address the issue of a zero MAC address
being in the packet.

Signed-off-by: Murali Karicheri <m-karicheri2@ti.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/hsr/hsr_framereg.c

index 03b8919..530de24 100644 (file)
@@ -325,7 +325,8 @@ void hsr_addr_subst_dest(struct hsr_node *node_src, struct sk_buff *skb,
        if (port->type != node_dst->addr_B_port)
                return;
 
-       ether_addr_copy(eth_hdr(skb)->h_dest, node_dst->macaddress_B);
+       if (is_valid_ether_addr(node_dst->macaddress_B))
+               ether_addr_copy(eth_hdr(skb)->h_dest, node_dst->macaddress_B);
 }
 
 void hsr_register_frame_in(struct hsr_node *node, struct hsr_port *port,