hash: fix false zero signature key hit lookup
authorPablo de Lara <pablo.de.lara.guarch@intel.com>
Fri, 26 Aug 2016 21:30:08 +0000 (22:30 +0100)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Thu, 29 Sep 2016 19:50:32 +0000 (21:50 +0200)
commit24c20a7221e1220baa680c55fc577a5bfe0f4889
tree6758aff32c9ca9a29c32c85f47288bcbce698645
parent1621f69abb6cc9db3047ee77835a44f68678d4a2
hash: fix false zero signature key hit lookup

This commit fixes a corner case scenario. When a key is deleted,
its signature in the hash table gets clear, which should prevent
a lookup of that same key, unless the signature of the key is all zeroes.

In that case, there will be a match, and key would be compared against
the key that is in the table (which does not get cleared,
as the performance penalty would be high), resulting in a wrong hit.

To prevent this from happening, the key index associated to that entry
should be set to zero when deleting it, so in case that same key
is looked up just after a deletion, it will point to the dummy key slot,
which guarantees a miss.

Fixes: 48a399119619 ("hash: replace with cuckoo hash implementation")

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Saikrishna Edupuganti <saikrishna.edupuganti@intel.com>
lib/librte_hash/rte_cuckoo_hash.c