[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