GCC 12 raises the following warning: from ../lib/eal/x86/include/rte_vect.h:31, from ../lib/eal/x86/include/rte_memcpy.h:17, from ../drivers/crypto/qat/qat_sym_session.c:10: In function '_mm_storeu_si128', inlined from 'rte_mov16' at ../lib/eal/x86/include/rte_memcpy.h:508:2, inlined from 'rte_mov128' at ../lib/eal/x86/include/rte_memcpy.h:542:2, inlined from 'rte_memcpy_generic' at ../lib/eal/x86/include/rte_memcpy.h:732:4, inlined from 'rte_memcpy' at ../lib/eal/x86/include/rte_memcpy.h:882:10, inlined from 'qat_sym_do_precomputes.constprop' at ../drivers/crypto/qat/qat_sym_session.c:1434:2: /usr/lib/gcc/x86_64-pc-linux-gnu/12.1.1/include/emmintrin.h:739:8: error: array subscript 8 is outside array bounds of 'unsigned char[128]' [-Werror=array-bounds] 739 | *__P = __B; | ~~~~~^~~~~
../drivers/crypto/qat/qat_sym_session.c: In function 'qat_sym_do_precomputes.constprop': ../drivers/crypto/qat/qat_sym_session.c:1305:17: note: at offset 192 into object 'opad.750' of size 128 1305 | uint8_t opad[qat_hash_get_block_size(ICP_QAT_HW_AUTH_ALGO_DELIMITER)]; | ^~~~ ../drivers/crypto/qat/qat_sym_session.c: In function 'qat_sym_do_precomputes.constprop': ../drivers/crypto/qat/qat_sym_session.c:1304:17: note: at offset 128 into object 'ipad.749' of size 128 1304 | uint8_t ipad[qat_hash_get_block_size(ICP_QAT_HW_AUTH_ALGO_DELIMITER)]; | ^~~~ Added a check to prevent compiler warnings. Signed-off-by: Amit Prakash Shukla <amitpraka...@marvell.com> --- drivers/crypto/qat/qat_sym_session.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/crypto/qat/qat_sym_session.c b/drivers/crypto/qat/qat_sym_session.c index 8ca475ca8b..4c513186d4 100644 --- a/drivers/crypto/qat/qat_sym_session.c +++ b/drivers/crypto/qat/qat_sym_session.c @@ -1431,6 +1431,10 @@ static int qat_sym_do_precomputes(enum icp_qat_hw_auth_algo hash_alg, QAT_LOG(ERR, "invalid keylen %u", auth_keylen); return -EFAULT; } + + RTE_VERIFY(auth_keylen <= sizeof(ipad)); + RTE_VERIFY(auth_keylen <= sizeof(opad)); + rte_memcpy(ipad, auth_key, auth_keylen); rte_memcpy(opad, auth_key, auth_keylen); -- 2.25.1