[PATCH] net/iavf: add segment-length check to Tx prep

Medvedkin, Vladimir vladimir.medvedkin at intel.com
Mon Nov 11 18:46:29 CET 2024


Acked-by: Vladimir Medvedkin <vladimir.medvedkin at intel.com>

On 11/11/2024 16:42, Bruce Richardson wrote:
> In the Tx prep function, the metadata checks were only checking the
> packet length and ignoring the data length. For single-buffer packets we
> can quickly check that the data length is the packet length.
>
> Fixes: 19ee91c6bd9a ("net/iavf: check illegal packet sizes")
> Cc: stable at dpdk.org
>
> Reported-by: Padraig Connolly <padraig.j.connolly at intel.com>
> Signed-off-by: Bruce Richardson <bruce.richardson at intel.com>
> ---
>   drivers/net/iavf/iavf_rxtx.c | 6 +++++-
>   1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/net/iavf/iavf_rxtx.c b/drivers/net/iavf/iavf_rxtx.c
> index 4850b9e381..6a093c6746 100644
> --- a/drivers/net/iavf/iavf_rxtx.c
> +++ b/drivers/net/iavf/iavf_rxtx.c
> @@ -3677,7 +3677,11 @@ iavf_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,
>   			return i;
>   		}
>   
> -		if (m->pkt_len < IAVF_TX_MIN_PKT_LEN) {
> +		/* valid packets are greater than min size, and single-buffer pkts
> +		 * must have data_len == pkt_len
> +		 */
> +		if (m->pkt_len < IAVF_TX_MIN_PKT_LEN ||
> +				(m->nb_segs == 1 && m->data_len != m->pkt_len)) {
>   			rte_errno = EINVAL;
>   			return i;
>   		}

-- 
Regards,
Vladimir



More information about the dev mailing list