net/sfc: check ID overflow in action port ID
authorIvan Malov <ivan.malov@oktetlabs.ru>
Thu, 27 May 2021 14:27:22 +0000 (17:27 +0300)
committerDavid Marchand <david.marchand@redhat.com>
Wed, 7 Jul 2021 09:54:21 +0000 (11:54 +0200)
The container in the action configuration is U32,
but the ID is U16, and overflow check is missing.

Fixes: 1fb65e4dae8a ("net/sfc: support flow action port ID in transfer rules")
Cc: stable@dpdk.org
Signed-off-by: Ivan Malov <ivan.malov@oktetlabs.ru>
Reviewed-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
Reviewed-by: Andy Moreton <amoreton@xilinx.com>
drivers/net/sfc/sfc_mae.c

index 33bff27..2ea2d63 100644 (file)
@@ -2653,6 +2653,9 @@ sfc_mae_rule_parse_action_port_id(struct sfc_adapter *sa,
        uint16_t port_id;
        int rc;
 
+       if (conf->id > UINT16_MAX)
+               return EOVERFLOW;
+
        port_id = (conf->original != 0) ? sas->port_id : conf->id;
 
        rc = sfc_mae_switch_port_by_ethdev(mae->switch_domain_id,