This patch fixes buffer overflow reported by ASAN, please reference https://bugs.dpdk.org/show_bug.cgi?id=818
Some tests for the rte_hash table use the rte_jhash_32b() as the hash function. This hash function interprets the length argument in units of 4 bytes. This patch divides configured key length by 4 in cases when rte_jhash_32b() is used. Bugzilla ID: 818 Fixes: af75078fece3 ("first public release") Cc: sta...@dpdk.org Signed-off-by: Vladimir Medvedkin <vladimir.medved...@intel.com> --- app/test/test_hash.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/app/test/test_hash.c b/app/test/test_hash.c index bd4d0cb..650d977 100644 --- a/app/test/test_hash.c +++ b/app/test/test_hash.c @@ -1617,7 +1617,8 @@ test_hash_add_delete_jhash2(void) int32_t pos1, pos2; hash_params_ex.name = "hash_test_jhash2"; - hash_params_ex.key_len = 4; + /* Set the key_len divided by 4 due to using rte_jhash_32b() */ + hash_params_ex.key_len = 4 / sizeof(uint32_t); hash_params_ex.hash_func = (rte_hash_function)rte_jhash_32b; handle = rte_hash_create(&hash_params_ex); @@ -1656,7 +1657,8 @@ test_hash_add_delete_2_jhash2(void) int32_t pos1, pos2; hash_params_ex.name = "hash_test_2_jhash2"; - hash_params_ex.key_len = 8; + /* Set the key_len divided by 4 due to using rte_jhash_32b() */ + hash_params_ex.key_len = 8 / sizeof(uint32_t); hash_params_ex.hash_func = (rte_hash_function)rte_jhash_32b; handle = rte_hash_create(&hash_params_ex); -- 2.7.4