test/table: fix build with GCC 11
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: 5205954791
("app/test: packet framework unit tests")
Cc: stable@dpdk.org
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
This commit is contained in:
parent
7989b7e7da
commit
33c12ac5ba
@ -28,7 +28,8 @@ table_test table_tests[] = {
|
||||
APP_METADATA_OFFSET(0)); \
|
||||
key = RTE_MBUF_METADATA_UINT8_PTR(mbuf, \
|
||||
APP_METADATA_OFFSET(32)); \
|
||||
memset(key, 0, 32); \
|
||||
if (mbuf->priv_size + mbuf->buf_len >= 64) \
|
||||
memset(key, 0, 32); \
|
||||
k32 = (uint32_t *) key; \
|
||||
k32[0] = (value); \
|
||||
*signature = pipeline_test_hash(key, NULL, 0, 0); \
|
||||
|
Loading…
Reference in New Issue
Block a user