From: Ramin Farajpour Cami <ramin.black...@gmail.com>
Date: Wed, 30 Jan 2019 21:35:42 +0000

> key/tmp is being kfree'd twice,once in the 
> "aalg_desc->uinfo.auth.icv_fullbits / 8 != crypto_aead_authsize(aead)" call
> to "free_key",twice When "crypto_aead_setauthsize(aead, 
> x->aalg->alg_trunc_len / 8)" fails call to again  "free_key",
> 
> Signed-off-by: Ramin Farajpour Cami <ramin.black...@gmail.com>
> ---
>  net/ipv4/esp4.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/net/ipv4/esp4.c b/net/ipv4/esp4.c
> index 5459f41fc26f..5a66e47641b0 100644
> --- a/net/ipv4/esp4.c
> +++ b/net/ipv4/esp4.c
> @@ -467,6 +467,7 @@ int esp_output_tail(struct xfrm_state *x, struct sk_buff 
> *skb, struct esp_info *
>  
>  error_free:
>       kfree(tmp);
> +     tmp = NULL;
>  error:
>       return err;
>  }

This makes no sense at all, the function returns right after the kfree() and
tmp is never referenced again!

Reply via email to