patches for DPDK stable branches
 help / color / mirror / Atom feed
* [dpdk-stable] [PATCH] test/table: fix build with GCC 11
@ 2021-05-17 15:57 Ferruh Yigit
  2021-05-18  8:55 ` [dpdk-stable] [dpdk-dev] " Thomas Monjalon
  0 siblings, 1 reply; 3+ messages in thread
From: Ferruh Yigit @ 2021-05-17 15:57 UTC (permalink / raw)
  To: Cristian Dumitrescu, Pablo de Lara Guarch
  Cc: Ferruh Yigit, dev, stable, Kevin Traynor

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@dpdk.org

Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
Cc: cristian.dumitrescu@intel.com
Cc: Kevin Traynor <ktraynor@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.
---
 app/test/test_table_tables.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/app/test/test_table_tables.c b/app/test/test_table_tables.c
index 1aa269f95d27..4ff6ab16aaaa 100644
--- a/app/test/test_table_tables.c
+++ b/app/test/test_table_tables.c
@@ -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);			\
-- 
2.31.1


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2021-05-18  9:29 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-05-17 15:57 [dpdk-stable] [PATCH] test/table: fix build with GCC 11 Ferruh Yigit
2021-05-18  8:55 ` [dpdk-stable] [dpdk-dev] " Thomas Monjalon
2021-05-18  9:29   ` Kevin Traynor

patches for DPDK stable branches

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://inbox.dpdk.org/stable/0 stable/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 stable stable/ https://inbox.dpdk.org/stable \
		stable@dpdk.org
	public-inbox-index stable

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://inbox.dpdk.org/inbox.dpdk.stable


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git