Skip to content

Commit

Permalink
test/table: fix build with GCC 11
Browse files Browse the repository at this point in the history
[ upstream commit 33c12ac ]

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: 5205954 ("app/test: packet framework unit tests")

Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
  • Loading branch information
Ferruh Yigit authored and steevenlee committed Jun 8, 2021
1 parent 61238b4 commit 64ac670
Showing 1 changed file with 2 additions and 1 deletion.
3 changes: 2 additions & 1 deletion app/test/test_table_tables.c
Original file line number Diff line number Diff line change
Expand Up @@ -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); \
Expand Down

0 comments on commit 64ac670

Please sign in to comment.