* [dpdk-dev] [PATCH] test/table: fix build with GCC 11
@ 2021-05-17 15:57 Ferruh Yigit
2021-05-18 8:55 ` 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
* Re: [dpdk-dev] [PATCH] test/table: fix build with GCC 11
2021-05-17 15:57 [dpdk-dev] [PATCH] test/table: fix build with GCC 11 Ferruh Yigit
@ 2021-05-18 8:55 ` Thomas Monjalon
2021-05-18 9:29 ` Kevin Traynor
0 siblings, 1 reply; 3+ messages in thread
From: Thomas Monjalon @ 2021-05-18 8:55 UTC (permalink / raw)
To: Ferruh Yigit
Cc: Cristian Dumitrescu, Pablo de Lara Guarch, dev, stable, Kevin Traynor
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@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.
Applied, thanks
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [dpdk-dev] [PATCH] test/table: fix build with GCC 11
2021-05-18 8:55 ` Thomas Monjalon
@ 2021-05-18 9:29 ` Kevin Traynor
0 siblings, 0 replies; 3+ messages in thread
From: Kevin Traynor @ 2021-05-18 9:29 UTC (permalink / raw)
To: Thomas Monjalon, Ferruh Yigit
Cc: Cristian Dumitrescu, Pablo de Lara Guarch, dev, stable
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@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.
>
> Applied, thanks
>
Was just testing this. fwiw, passing build on F34/gcc11 and LGTM.
>
>
^ 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-dev] [PATCH] test/table: fix build with GCC 11 Ferruh Yigit
2021-05-18 8:55 ` Thomas Monjalon
2021-05-18 9:29 ` Kevin Traynor
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).