Skip to contentSkip to conversation

rte_hash returns invalid key if the number of entries is not a power of 2

dpdk-dev [email protected] 1 participant 1 message Sep 5, 2019

lore
Share & tools
lore
#0 lore raw

https://bugs.dpdk.org/show_bug.cgi?id=345

Bug ID: 345
Summary: rte_hash returns invalid key if the number of entries
is not a power of 2
Product: DPDK
Version: 19.08
Hardware: All
OS: All
Status: UNCONFIRMED
Severity: normal
Priority: Normal
Component: other
Assignee: [email protected]
Reporter: [email protected]
Target Milestone: ---

Hi all,

rte_hash_create will silently augment the number of entries (N) to the next power of 2 value.

Per the documentation, the return values of "rte_hash_lookup" or "rte_hash_add" is "[... or] a positive value that can be used by the caller as an offset into an array of user data. This value is unique for this key.".
Which may lead to a segmentation fault, as the user allocated only N entries and not next_pow2(N). And there is no means to recover what is the "final" number of entries (next_pow2(N)).

I would suggest to at least update the documentation. One way to really fix this would be to let the user get the actual number of entries, or fail if the value is not a power of 2.

Tom

Signature · 2 lines
You are receiving this mail because:
You are the assignee for the bug.