From 0c57f40e66c8c29c6c92a7b0dec46fcef5584941 Mon Sep 17 00:00:00 2001 From: Chas Williams Date: Mon, 18 Sep 2017 15:47:40 -0400 Subject: [PATCH] hash: document jhash boundary behavior Due to the uint32_t accesses in the hash computation, keys that aren't aligned to a uint32_t boundary or multiples of uint32_t in length, may see accesses beyond the end of the key. This may cross a page boundary. Signed-off-by: Chas Williams Acked-by: Luca Boccassi Acked-by: John McNamara --- lib/librte_hash/rte_jhash.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/librte_hash/rte_jhash.h b/lib/librte_hash/rte_jhash.h index 207478c282..3eca13858b 100644 --- a/lib/librte_hash/rte_jhash.h +++ b/lib/librte_hash/rte_jhash.h @@ -290,7 +290,10 @@ rte_jhash_32b_2hashes(const uint32_t *k, uint32_t length, uint32_t *pc, uint32_t /** * The most generic version, hashes an arbitrary sequence * of bytes. No alignment or length assumptions are made about - * the input key. + * the input key. For keys 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 may cross a page boundary. * * @param key * Key to calculate hash of. -- 2.20.1