> From: Thomas Monjalon [mailto:[email protected]]
> Sent: Monday, 20 April 2026 12.06
> 
> 20/04/2026 00:12, Morten Brørup:
> > This addresses two bugs in mbuf operations history recording.
> >
> > 1. With mbuf operations history recording enabled, when allocating
> mbufs
> > from a mempool failed, the array of fetched mbuf pointers was not
> set, but
> > it was dereferenced for mbuf operations history recording anyway,
> which
> > would trigger a segmentation fault or cause undefined behavior.
> >
> > This was fixed by changing how the return value from the mempool
> > allocation is checked, so the function returns early on failure, and
> only
> > proceeds on success.
> >
> > 2. When allocating a bulk of mbufs using rte_pktmbuf_alloc_bulk(),
> two
> > mbuf library allocation operations were recorded on the mbuf, because
> the
> > function calls rte_mbuf_raw_alloc_bulk() for allocation, and both
> > functions record a mbuf library allocation operation.
> >
> > This was fixed by not recording a mbuf library allocation operation
> in
> > rte_pktmbuf_alloc_bulk().
> >
> > Fixes: d265a24a32a4 ("mbuf: record mbuf operations history")
> > Cc: [email protected]
> >
> > Signed-off-by: Morten Brørup <[email protected]>
> [...]
> 
> It would be better to make an explicit comparison != 0 below:
> 
> > +   if (unlikely(rc))
> > +           return rc;

I would normally have done that, but decided to do it like 
rte_pktmbuf_alloc_bulk().
If it was a pointer, I would probably have compared != NULL regardless of 
conventions in the file.

> 
> Thank you for the fixes.
> 
> Acked-by: Thomas Monjalon <[email protected]>

Thanks for the fast review response.

Reply via email to