]> www.infradead.org Git - users/hch/uuid.git/commitdiff
bridge: mrp: Validate when setting the port role
authorHoratiu Vultur <horatiu.vultur@microchip.com>
Tue, 23 Jun 2020 09:05:41 +0000 (11:05 +0200)
committerDavid S. Miller <davem@davemloft.net>
Tue, 23 Jun 2020 21:38:05 +0000 (14:38 -0700)
This patch adds specific checks for primary(0x0) and secondary(0x1) when
setting the port role. For any other value the function
'br_mrp_set_port_role' will return -EINVAL.

Fixes: 20f6a05ef63594 ("bridge: mrp: Rework the MRP netlink interface")
Signed-off-by: Horatiu Vultur <horatiu.vultur@microchip.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/bridge/br_mrp.c

index 24986ec7d38cc99cc701b41378dec1c34e6c8328..779e1eb754430fa43099b237f5cba5db00efe746 100644 (file)
@@ -411,10 +411,16 @@ int br_mrp_set_port_role(struct net_bridge_port *p,
        if (!mrp)
                return -EINVAL;
 
-       if (role == BR_MRP_PORT_ROLE_PRIMARY)
+       switch (role) {
+       case BR_MRP_PORT_ROLE_PRIMARY:
                rcu_assign_pointer(mrp->p_port, p);
-       else
+               break;
+       case BR_MRP_PORT_ROLE_SECONDARY:
                rcu_assign_pointer(mrp->s_port, p);
+               break;
+       default:
+               return -EINVAL;
+       }
 
        br_mrp_port_switchdev_set_role(p, role);