test/crypto: fix gcc 11 array-bounds error
Checks
Commit Message
$ gcc --version
gcc (GCC) 11.1.1 20210428 (Red Hat 11.1.1-1)
/test_cryptodev.c.o -c ../app/test/test_cryptodev.c
../app/test/test_cryptodev.c: In function ‘test_multi_session’:
../app/test/test_cryptodev.c:10447:9:
error: array subscript ‘struct rte_cryptodev_sym_session *[4]’
is partly outside array bounds of ‘unsigned char[33]’
[-Werror=array-bounds]
10447 | rte_cryptodev_sym_session_init(ts_params->valid_devs[0],
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
10448 | sessions[i], &ut_params->auth_xform,
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
10449 | ts_params->session_priv_mpool);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../app/test/test_cryptodev.c:10399:20:
note: referencing an object of size 33 allocated by ‘rte_malloc’
10399 | sessions = rte_malloc(NULL,
| ^~~~~~~~~~~~~~~~
10400 | (sizeof(struct rte_cryptodev_sym_session *) *
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
10401 | MAX_NB_SESSIONS) + 1, 0);
| ~~~~~~~~~~~~~~~~~~~~~~~~
Fix the allocation for sessions, to prevent an array-bounds
warning with gcc 11. Set the not created session to NULL.
Fixes: 202d375c60bc ("app/test: add cryptodev unit and performance tests")
Cc: stable@dpdk.org
Signed-off-by: Kevin Traynor <ktraynor@redhat.com>
---
app/test/test_cryptodev.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
Comments
> $ gcc --version
> gcc (GCC) 11.1.1 20210428 (Red Hat 11.1.1-1)
>
> /test_cryptodev.c.o -c ../app/test/test_cryptodev.c
> ../app/test/test_cryptodev.c: In function ‘test_multi_session’:
> ../app/test/test_cryptodev.c:10447:9:
> error: array subscript ‘struct rte_cryptodev_sym_session *[4]’
> is partly outside array bounds of ‘unsigned char[33]’
> [-Werror=array-bounds]
> 10447 | rte_cryptodev_sym_session_init(ts_params->valid_devs[0],
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> 10448 | sessions[i], &ut_params->auth_xform,
> | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> 10449 | ts_params->session_priv_mpool);
> | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> ../app/test/test_cryptodev.c:10399:20:
> note: referencing an object of size 33 allocated by ‘rte_malloc’
> 10399 | sessions = rte_malloc(NULL,
> | ^~~~~~~~~~~~~~~~
> 10400 | (sizeof(struct rte_cryptodev_sym_session *) *
> | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> 10401 | MAX_NB_SESSIONS) + 1, 0);
> | ~~~~~~~~~~~~~~~~~~~~~~~~
>
> Fix the allocation for sessions, to prevent an array-bounds
> warning with gcc 11. Set the not created session to NULL.
>
> Fixes: 202d375c60bc ("app/test: add cryptodev unit and performance tests")
> Cc: stable@dpdk.org
>
> Signed-off-by: Kevin Traynor <ktraynor@redhat.com>
Acked-by: Akhil Goyal <gakhil@marvell.com>
Applied to dpdk-next-crypto
@@ -10398,6 +10398,6 @@ test_multi_session(void)
sessions = rte_malloc(NULL,
- (sizeof(struct rte_cryptodev_sym_session *) *
- MAX_NB_SESSIONS) + 1, 0);
+ sizeof(struct rte_cryptodev_sym_session *) *
+ (MAX_NB_SESSIONS + 1), 0);
/* Create multiple crypto sessions*/
@@ -10444,4 +10444,5 @@ test_multi_session(void)
}
+ sessions[i] = NULL;
/* Next session create should fail */
rte_cryptodev_sym_session_init(ts_params->valid_devs[0],