Separated name, entries and key_len parameter checks in rte_hash_create(). Also made the error messages more informative/verbose to help with debugging. Also added myself to the mailing list.
Signed-off-by: Niall Meade <niall.me...@intel.com> --- I had name set to NULL in the parameters I was passing to rte_hash_create() and the error message I got didn't specify which parameter was invalid. --- .mailmap | 1 + lib/hash/rte_cuckoo_hash.c | 22 ++++++++++++++++++---- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/.mailmap b/.mailmap index 8aef1c59a4..e2a1d55203 100644 --- a/.mailmap +++ b/.mailmap @@ -1054,6 +1054,7 @@ Nelson Escobar <neesc...@cisco.com> Nemanja Marjanovic <nemanja.marjano...@intel.com> Netanel Belgazal <neta...@amazon.com> Netanel Gonen <netan...@mellanox.com> +Niall Meade <niall.me...@intel.com> Niall Power <niall.po...@intel.com> Nicholas Pratte <npra...@iol.unh.edu> Nick Connolly <nick.conno...@arm.com> <nick.conno...@mayadata.io> diff --git a/lib/hash/rte_cuckoo_hash.c b/lib/hash/rte_cuckoo_hash.c index 577b5839d3..97d55ca23b 100644 --- a/lib/hash/rte_cuckoo_hash.c +++ b/lib/hash/rte_cuckoo_hash.c @@ -190,11 +190,18 @@ rte_hash_create(const struct rte_hash_parameters *params) /* Check for valid parameters */ if ((params->entries > RTE_HASH_ENTRIES_MAX) || - (params->entries < RTE_HASH_BUCKET_ENTRIES) || - (params->name == NULL) || - (params->key_len == 0)) { + (params->entries < RTE_HASH_BUCKET_ENTRIES)) { rte_errno = EINVAL; - HASH_LOG(ERR, "%s has invalid parameters", __func__); + HASH_LOG(ERR, "%s has invalid parameters, entries must be " + "in the range %d to %d inclusive", __func__, + RTE_HASH_BUCKET_ENTRIES, RTE_HASH_ENTRIES_MAX); + return NULL; + } + + if (params->key_len == 0) { + rte_errno = EINVAL; + HASH_LOG(ERR, "%s has invalid parameters, key_len must be " + "greater than 0", __func__); return NULL; } @@ -204,6 +211,13 @@ rte_hash_create(const struct rte_hash_parameters *params) return NULL; } + if (params->name == NULL) { + rte_errno = EINVAL; + HASH_LOG(ERR, "%s has invalid parameters, name can't be NULL", + __func__); + return NULL; + } + /* Validate correct usage of extra options */ if ((params->extra_flag & RTE_HASH_EXTRA_FLAGS_RW_CONCURRENCY) && (params->extra_flag & RTE_HASH_EXTRA_FLAGS_RW_CONCURRENCY_LF)) { -- 2.34.1 -------------------------------------------------------------- Intel Research and Development Ireland Limited Registered in Ireland Registered Office: Collinstown Industrial Park, Leixlip, County Kildare Registered Number: 308263 This e-mail and any attachments may contain confidential material for the sole use of the intended recipient(s). Any review or distribution by others is strictly prohibited. If you are not the intended recipient, please contact the sender and delete all copies.