net: microchip: sparx5: Ensure L3 protocol has a default value
authorSteen Hegelund <steen.hegelund@microchip.com>
Thu, 17 Nov 2022 21:31:07 +0000 (22:31 +0100)
committerDavid S. Miller <davem@davemloft.net>
Mon, 21 Nov 2022 11:33:02 +0000 (11:33 +0000)
This ensures that the l3_proto always have a valid value and that any
dissector parsing errors causes the flower rule to be discarded.

Signed-off-by: Steen Hegelund <steen.hegelund@microchip.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/microchip/sparx5/sparx5_tc_flower.c

index a48baeacc1d29c90290ed328e3f909896dce132b..04fc2f3b197948e78c929e77ea3b00d049bc4aa0 100644 (file)
@@ -648,7 +648,11 @@ static int sparx5_tc_flower_replace(struct net_device *ndev,
                return PTR_ERR(vrule);
 
        vrule->cookie = fco->cookie;
-       sparx5_tc_use_dissectors(fco, admin, vrule, &l3_proto);
+
+       l3_proto = ETH_P_ALL;
+       err = sparx5_tc_use_dissectors(fco, admin, vrule, &l3_proto);
+       if (err)
+               goto out;
 
        err = sparx5_tc_add_rule_counter(admin, vrule);
        if (err)