On Mon, Jun 01, 2020 at 03:24:16PM +0000, Alexander Kozyrev wrote: > Memzones are created in testpmd in order to test external data > buffers functionality. Each memzone is 2Mb in size and divided among > the pool of external memory buffers. > > Memzone may not always be fully utilized because mbufs size can vary > and some space can be left unused at the tail of a memzone. This is > not handled properly and mbuf can get the address of this leftover > space since this address is still valid (part of memzone), but there > is not enough space to fit the whole packet data. As a result packet > data may overflow and cause the memory corruption. > > Take mbuf size into account when distributing memory addresses from > a memzone to external mbufs. Skip the remaining tail in case there > is not enough room for a packet and move to a next memzone instead. > > Fixes: 6c8e50c2e5 ("mbuf: create pool with external memory buffers") > Cc: sta...@dpdk.org > Signed-off-by: Alexander Kozyrev <akozy...@mellanox.com> > Acked-by: Viacheslav Ovsiienko <viachesl...@mellanox.com>
Acked-by: Olivier Matz <olivier.m...@6wind.com> Thanks!