[dpdk-dev] [PATCH] test/table: fix build with GCC 11

Kevin Traynor ktraynor at redhat.com
Tue May 18 11:29:17 CEST 2021


On 18/05/2021 09:55, Thomas Monjalon wrote:
> 17/05/2021 17:57, Ferruh Yigit:
>> Build error:
>> ../app/test/test_table_tables.c: In function ‘test_table_stub’:
>> ../app/test/test_table_tables.c:31:9:
>> 	warning: ‘memset’ offset [0, 31] is out of the bounds [0, 0]
>> 	[-Warray-bounds]
>>          memset((uint8_t *)mbuf + sizeof(struct rte_mbuf) + 32, 0, 32); \
>>          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> ../app/test/test_table_tables.c:151:25:
>> 	note: in expansion of macro ‘PREPARE_PACKET’
>>   151 |                         PREPARE_PACKET(mbufs[i], 0xadadadad);
>>       |                         ^~~~~~~~~~~~~~
>>
>> 'key' points to mbuf header + 32 bytes, and memset clears next 32 bytes
>> of 'key', so overall there needs to be 64 bytes after mbuf header.
>> Adding a mbuf size check before memset.
>>
>> The original code has an assumption that mbuf data buffer follows mbuf
>> header, this patch accepts same assumption.
>>
>> Bugzilla ID: 677
>> Fixes: 5205954791cb ("app/test: packet framework unit tests")
>> Cc: stable at dpdk.org
>>
>> Signed-off-by: Ferruh Yigit <ferruh.yigit at intel.com>
>> ---
>> Cc: cristian.dumitrescu at intel.com
>> Cc: Kevin Traynor <ktraynor at redhat.com>
>>
>> Not exactly clear why compiler complains about, compiler can't know the
>> bounds of the memory we try to memset here.
>> But adding a size check seems logic thing to do also fixes the compiler
>> warning.
> 
> Applied, thanks
> 

Was just testing this. fwiw, passing build on F34/gcc11 and LGTM.

> 
> 



More information about the dev mailing list