Tested-by: Padraig Connolly <padraig.j.connolly@intel.com>
> Acked-by: Vladimir Medvedkin <vladimir.medvedkin@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@dpdk.org
> >
> > Reported-by: Padraig Connolly <padraig.j.connolly@intel.com>
> > Signed-off-by: Bruce Richardson <bruce.richardson@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
Tested-by: Padraig Connolly <padraig.j.connolly@intel.com>