[PATCH] net/cnxk: fix out of bounds access in cmd array

Jerin Jacob jerinjacobk at gmail.com
Thu May 5 10:40:08 CEST 2022


On Sun, Apr 24, 2022 at 9:53 PM Gowrishankar Muthukrishnan
<gmuthukrishn at marvell.com> wrote:
>
> Fix out of bounds access in cmd array which was reported in coverity
> scan.
>
> Coverity issue: 375245, 375246, 375260, 375263, 375264, 375271, 375278,
>                 375279, 375273, 375274, 375275, 375276, 375280, 375281,
>                 375283, 375286
> Fixes: c5b97e98837 ("net/cnxk: add cn10k template Tx functions to build")
> Fixes: dd8c20eee47 ("net/cnxk: add cn9k template Tx functions to build")
>
> Signed-off-by: Gowrishankar Muthukrishnan <gmuthukrishn at marvell.com>

Acked-by: Jerin Jacob <jerinj at marvell.com>
Applied to dpdk-next-net-mrvl/for-next-net. Thanks


> ---
>  drivers/net/cnxk/cn10k_tx.h | 32 ++++++++++++++++----------------
>  drivers/net/cnxk/cn9k_tx.h  | 32 ++++++++++++++++----------------
>  2 files changed, 32 insertions(+), 32 deletions(-)
>
> diff --git a/drivers/net/cnxk/cn10k_tx.h b/drivers/net/cnxk/cn10k_tx.h
> index 5d4003c5d4..85eba90334 100644
> --- a/drivers/net/cnxk/cn10k_tx.h
> +++ b/drivers/net/cnxk/cn10k_tx.h
> @@ -2728,18 +2728,18 @@ cn10k_nix_xmit_pkts_vector(void *tx_queue, uint64_t *ws,
>
>  /* [T_SEC_F] [TSP] [TSO] [NOFF] [VLAN] [OL3OL4CSUM] [L3L4CSUM] */
>  #define NIX_TX_FASTPATH_MODES_0_15                                             \
> -       T(no_offload, 4, NIX_TX_OFFLOAD_NONE)                                  \
> -       T(l3l4csum, 4, L3L4CSUM_F)                                             \
> -       T(ol3ol4csum, 4, OL3OL4CSUM_F)                                         \
> -       T(ol3ol4csum_l3l4csum, 4, OL3OL4CSUM_F | L3L4CSUM_F)                   \
> +       T(no_offload, 6, NIX_TX_OFFLOAD_NONE)                                  \
> +       T(l3l4csum, 6, L3L4CSUM_F)                                             \
> +       T(ol3ol4csum, 6, OL3OL4CSUM_F)                                         \
> +       T(ol3ol4csum_l3l4csum, 6, OL3OL4CSUM_F | L3L4CSUM_F)                   \
>         T(vlan, 6, VLAN_F)                                                     \
>         T(vlan_l3l4csum, 6, VLAN_F | L3L4CSUM_F)                               \
>         T(vlan_ol3ol4csum, 6, VLAN_F | OL3OL4CSUM_F)                           \
>         T(vlan_ol3ol4csum_l3l4csum, 6, VLAN_F | OL3OL4CSUM_F | L3L4CSUM_F)     \
> -       T(noff, 4, NOFF_F)                                                     \
> -       T(noff_l3l4csum, 4, NOFF_F | L3L4CSUM_F)                               \
> -       T(noff_ol3ol4csum, 4, NOFF_F | OL3OL4CSUM_F)                           \
> -       T(noff_ol3ol4csum_l3l4csum, 4, NOFF_F | OL3OL4CSUM_F | L3L4CSUM_F)     \
> +       T(noff, 6, NOFF_F)                                                     \
> +       T(noff_l3l4csum, 6, NOFF_F | L3L4CSUM_F)                               \
> +       T(noff_ol3ol4csum, 6, NOFF_F | OL3OL4CSUM_F)                           \
> +       T(noff_ol3ol4csum_l3l4csum, 6, NOFF_F | OL3OL4CSUM_F | L3L4CSUM_F)     \
>         T(noff_vlan, 6, NOFF_F | VLAN_F)                                       \
>         T(noff_vlan_l3l4csum, 6, NOFF_F | VLAN_F | L3L4CSUM_F)                 \
>         T(noff_vlan_ol3ol4csum, 6, NOFF_F | VLAN_F | OL3OL4CSUM_F)             \
> @@ -2813,19 +2813,19 @@ cn10k_nix_xmit_pkts_vector(void *tx_queue, uint64_t *ws,
>           TSP_F | TSO_F | NOFF_F | VLAN_F | OL3OL4CSUM_F | L3L4CSUM_F)
>
>  #define NIX_TX_FASTPATH_MODES_64_79                                            \
> -       T(sec, 4, T_SEC_F)                                                     \
> -       T(sec_l3l4csum, 4, T_SEC_F | L3L4CSUM_F)                               \
> -       T(sec_ol3ol4csum, 4, T_SEC_F | OL3OL4CSUM_F)                           \
> -       T(sec_ol3ol4csum_l3l4csum, 4, T_SEC_F | OL3OL4CSUM_F | L3L4CSUM_F)     \
> +       T(sec, 6, T_SEC_F)                                                     \
> +       T(sec_l3l4csum, 6, T_SEC_F | L3L4CSUM_F)                               \
> +       T(sec_ol3ol4csum, 6, T_SEC_F | OL3OL4CSUM_F)                           \
> +       T(sec_ol3ol4csum_l3l4csum, 6, T_SEC_F | OL3OL4CSUM_F | L3L4CSUM_F)     \
>         T(sec_vlan, 6, T_SEC_F | VLAN_F)                                       \
>         T(sec_vlan_l3l4csum, 6, T_SEC_F | VLAN_F | L3L4CSUM_F)                 \
>         T(sec_vlan_ol3ol4csum, 6, T_SEC_F | VLAN_F | OL3OL4CSUM_F)             \
>         T(sec_vlan_ol3ol4csum_l3l4csum, 6,                                     \
>           T_SEC_F | VLAN_F | OL3OL4CSUM_F | L3L4CSUM_F)                        \
> -       T(sec_noff, 4, T_SEC_F | NOFF_F)                                       \
> -       T(sec_noff_l3l4csum, 4, T_SEC_F | NOFF_F | L3L4CSUM_F)                 \
> -       T(sec_noff_ol3ol4csum, 4, T_SEC_F | NOFF_F | OL3OL4CSUM_F)             \
> -       T(sec_noff_ol3ol4csum_l3l4csum, 4,                                     \
> +       T(sec_noff, 6, T_SEC_F | NOFF_F)                                       \
> +       T(sec_noff_l3l4csum, 6, T_SEC_F | NOFF_F | L3L4CSUM_F)                 \
> +       T(sec_noff_ol3ol4csum, 6, T_SEC_F | NOFF_F | OL3OL4CSUM_F)             \
> +       T(sec_noff_ol3ol4csum_l3l4csum, 6,                                     \
>           T_SEC_F | NOFF_F | OL3OL4CSUM_F | L3L4CSUM_F)                        \
>         T(sec_noff_vlan, 6, T_SEC_F | NOFF_F | VLAN_F)                         \
>         T(sec_noff_vlan_l3l4csum, 6, T_SEC_F | NOFF_F | VLAN_F | L3L4CSUM_F)   \
> diff --git a/drivers/net/cnxk/cn9k_tx.h b/drivers/net/cnxk/cn9k_tx.h
> index a0611a67c9..6ce81f5c96 100644
> --- a/drivers/net/cnxk/cn9k_tx.h
> +++ b/drivers/net/cnxk/cn9k_tx.h
> @@ -1903,18 +1903,18 @@ cn9k_nix_xmit_pkts_vector(void *tx_queue, struct rte_mbuf **tx_pkts,
>
>  /* [T_SEC_F] [TSP] [TSO] [NOFF] [VLAN] [OL3OL4CSUM] [L3L4CSUM] */
>  #define NIX_TX_FASTPATH_MODES_0_15                                             \
> -       T(no_offload, 4, NIX_TX_OFFLOAD_NONE)                                  \
> -       T(l3l4csum, 4, L3L4CSUM_F)                                             \
> -       T(ol3ol4csum, 4, OL3OL4CSUM_F)                                         \
> -       T(ol3ol4csum_l3l4csum, 4, OL3OL4CSUM_F | L3L4CSUM_F)                   \
> +       T(no_offload, 6, NIX_TX_OFFLOAD_NONE)                                  \
> +       T(l3l4csum, 6, L3L4CSUM_F)                                             \
> +       T(ol3ol4csum, 6, OL3OL4CSUM_F)                                         \
> +       T(ol3ol4csum_l3l4csum, 6, OL3OL4CSUM_F | L3L4CSUM_F)                   \
>         T(vlan, 6, VLAN_F)                                                     \
>         T(vlan_l3l4csum, 6, VLAN_F | L3L4CSUM_F)                               \
>         T(vlan_ol3ol4csum, 6, VLAN_F | OL3OL4CSUM_F)                           \
>         T(vlan_ol3ol4csum_l3l4csum, 6, VLAN_F | OL3OL4CSUM_F | L3L4CSUM_F)     \
> -       T(noff, 4, NOFF_F)                                                     \
> -       T(noff_l3l4csum, 4, NOFF_F | L3L4CSUM_F)                               \
> -       T(noff_ol3ol4csum, 4, NOFF_F | OL3OL4CSUM_F)                           \
> -       T(noff_ol3ol4csum_l3l4csum, 4, NOFF_F | OL3OL4CSUM_F | L3L4CSUM_F)     \
> +       T(noff, 6, NOFF_F)                                                     \
> +       T(noff_l3l4csum, 6, NOFF_F | L3L4CSUM_F)                               \
> +       T(noff_ol3ol4csum, 6, NOFF_F | OL3OL4CSUM_F)                           \
> +       T(noff_ol3ol4csum_l3l4csum, 6, NOFF_F | OL3OL4CSUM_F | L3L4CSUM_F)     \
>         T(noff_vlan, 6, NOFF_F | VLAN_F)                                       \
>         T(noff_vlan_l3l4csum, 6, NOFF_F | VLAN_F | L3L4CSUM_F)                 \
>         T(noff_vlan_ol3ol4csum, 6, NOFF_F | VLAN_F | OL3OL4CSUM_F)             \
> @@ -1988,19 +1988,19 @@ cn9k_nix_xmit_pkts_vector(void *tx_queue, struct rte_mbuf **tx_pkts,
>           TSP_F | TSO_F | NOFF_F | VLAN_F | OL3OL4CSUM_F | L3L4CSUM_F)
>
>  #define NIX_TX_FASTPATH_MODES_64_79                                            \
> -       T(sec, 4, T_SEC_F)                                                     \
> -       T(sec_l3l4csum, 4, T_SEC_F | L3L4CSUM_F)                               \
> -       T(sec_ol3ol4csum, 4, T_SEC_F | OL3OL4CSUM_F)                           \
> -       T(sec_ol3ol4csum_l3l4csum, 4, T_SEC_F | OL3OL4CSUM_F | L3L4CSUM_F)     \
> +       T(sec, 6, T_SEC_F)                                                     \
> +       T(sec_l3l4csum, 6, T_SEC_F | L3L4CSUM_F)                               \
> +       T(sec_ol3ol4csum, 6, T_SEC_F | OL3OL4CSUM_F)                           \
> +       T(sec_ol3ol4csum_l3l4csum, 6, T_SEC_F | OL3OL4CSUM_F | L3L4CSUM_F)     \
>         T(sec_vlan, 6, T_SEC_F | VLAN_F)                                       \
>         T(sec_vlan_l3l4csum, 6, T_SEC_F | VLAN_F | L3L4CSUM_F)                 \
>         T(sec_vlan_ol3ol4csum, 6, T_SEC_F | VLAN_F | OL3OL4CSUM_F)             \
>         T(sec_vlan_ol3ol4csum_l3l4csum, 6,                                     \
>           T_SEC_F | VLAN_F | OL3OL4CSUM_F | L3L4CSUM_F)                        \
> -       T(sec_noff, 4, T_SEC_F | NOFF_F)                                       \
> -       T(sec_noff_l3l4csum, 4, T_SEC_F | NOFF_F | L3L4CSUM_F)                 \
> -       T(sec_noff_ol3ol4csum, 4, T_SEC_F | NOFF_F | OL3OL4CSUM_F)             \
> -       T(sec_noff_ol3ol4csum_l3l4csum, 4,                                     \
> +       T(sec_noff, 6, T_SEC_F | NOFF_F)                                       \
> +       T(sec_noff_l3l4csum, 6, T_SEC_F | NOFF_F | L3L4CSUM_F)                 \
> +       T(sec_noff_ol3ol4csum, 6, T_SEC_F | NOFF_F | OL3OL4CSUM_F)             \
> +       T(sec_noff_ol3ol4csum_l3l4csum, 6,                                     \
>           T_SEC_F | NOFF_F | OL3OL4CSUM_F | L3L4CSUM_F)                        \
>         T(sec_noff_vlan, 6, T_SEC_F | NOFF_F | VLAN_F)                         \
>         T(sec_noff_vlan_l3l4csum, 6, T_SEC_F | NOFF_F | VLAN_F | L3L4CSUM_F)   \
> --
> 2.25.1
>


More information about the dev mailing list