test/hash: fix buffer overflow with jhash
authorVladimir Medvedkin <vladimir.medvedkin@intel.com>
Thu, 14 Oct 2021 17:48:19 +0000 (18:48 +0100)
committerDavid Marchand <david.marchand@redhat.com>
Thu, 21 Oct 2021 07:42:40 +0000 (09:42 +0200)
commite30ef3a3a032875cc4bc395dc13201a11b110f9f
tree1262356d6a4bb9f0c0c175d95e4290eddb576883
parent0ff26704b4e35b690f2e6a94d0ccbd8da90c8825
test/hash: fix buffer overflow with jhash

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 adds a wrapper function around rte_jhash_32b()
to reflect API differences regarding the length argument,
effectively dividing it by 4.

For some tests rte_jhash() is used with keys of length not
a multiple of 4 bytes. From the rte_jhash() documentation:
If input key is not aligned to four byte boundaries or a
multiple of four bytes in length, the memory region just
after may be read (but not used in the computation).

This patch increases the size of the proto field of the
flow_key struct up to uint32_t.

Bugzilla ID: 818
Fixes: af75078fece3 ("first public release")
Cc: stable@dpdk.org
Signed-off-by: Vladimir Medvedkin <vladimir.medvedkin@intel.com>
Acked-by: Yipeng Wang <yipeng1.wang@intel.com>
app/test/test_hash.c