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;
 }
@@ -959,7 +960,7 @@ static int esp_init_authenc(struct xfrm_state *x)
 
 free_key:
        kfree(key);
-
+       key = NULL;
 error:
        return err;
 }
-- 
2.11.0

Reply via email to