[dpdk-dev] [PATCH] lib/librte_ip_frag:fix ip_frag_key_cmp bug

Thomas Monjalon thomas at monjalon.net
Sun Aug 5 14:59:21 CEST 2018


Konstantin,
Is it candidate for last minute fix in 18.08?


02/08/2018 04:01, Li Han:
> in struct ip_frag_key,src_dst[] type is uint64_t.
> but "val" which to store the calc restult ,type is uint32_t.
> we may lost high 32 bit key. and function return value is int,
> but it won't return < 0.
> 
> Signed-off-by: Li Han <han.li1 at zte.com.cn>
> ---
>  lib/librte_ip_frag/ip_frag_common.h | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/lib/librte_ip_frag/ip_frag_common.h b/lib/librte_ip_frag/ip_frag_common.h
> index 197acf8..ca69680 100644
> --- a/lib/librte_ip_frag/ip_frag_common.h
> +++ b/lib/librte_ip_frag/ip_frag_common.h
> @@ -69,10 +69,10 @@ struct ip_frag_pkt * ip_frag_lookup(struct rte_ip_frag_tbl *tbl,
>  }
>  
>  /* compare two keys */
> -static inline int
> +static inline uint64_t
>  ip_frag_key_cmp(const struct ip_frag_key * k1, const struct ip_frag_key * k2)
>  {
> -	uint32_t i, val;
> +	uint64_t i, val;
>  	val = k1->id ^ k2->id;
>  	for (i = 0; i < k1->key_len; i++)
>  		val |= k1->src_dst[i] ^ k2->src_dst[i];
> 







More information about the dev mailing list