> -----Original Message-----
> From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of
> miroslaw.walukiewicz at intel.com
> Sent: Tuesday, March 3, 2015 2:16 PM
> To: dev at dpdk.org
> Subject: [dpdk-dev] [PATCH] dpdk: fix a crash during
> rte_table_hash_key16_ext overload
> 
> From: Miroslaw Walukiewicz <miroslaw.walukiewicz at intel.com>
> 
> The hash_key16_ext table allocates a cache entries to support
> table overload cases.
> 
> The crash can occur when cache entry is free after use. The problem
> is with computing the index of the free cache entry.
> 
> The patch fixes a problem.
> 
> Signed-off-by: Mirek Walukiewicz <miroslaw.walukiewicz at intel.com>
> ---
>  lib/librte_table/rte_table_hash_key16.c |    5 ++---
>  1 file changed, 2 insertions(+), 3 deletions(-)
> 
> diff --git a/lib/librte_table/rte_table_hash_key16.c
> b/lib/librte_table/rte_table_hash_key16.c
> index ee5f639..e0c99bd 100644
> --- a/lib/librte_table/rte_table_hash_key16.c
> +++ b/lib/librte_table/rte_table_hash_key16.c
> @@ -535,9 +535,8 @@ rte_table_hash_entry_delete_key16_ext(
> 
>                                       memset(bucket, 0,
>                                               sizeof(struct
> rte_bucket_4_16));
> -                                     bucket_index = (bucket -
> -                                             ((struct rte_bucket_4_16 *)
> -                                             f->memory)) - f->n_buckets;
> +                                     bucket_index = (((uint8_t *)bucket -
> +                                             (uint8_t *)f->memory)/f-
> >bucket_size) - f->n_buckets;
>                                       f->stack[f->stack_pos++] =
> bucket_index;
>                               }
> 

Acked by: Cristian Dumitrescu <cristian.dumitrescu at intel.com>

Mirek, identical issue is found at identical place in rte_table_hash_key8.c and 
rte_table_hash_key32.c, would you please submit the same fix for those as well?

Thanks,
Cristian

Reply via email to