crypto: talitos - Stop leaking memory in error path

free edescriptor when returning error (such as -EAGAIN).

Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
Acked-by: Lee Nipper <lee.nipper@freescale.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>

authored by

Kim Phillips and committed by
Herbert Xu
fa86a267 586725f8

+7 -2
+7 -2
drivers/crypto/talitos.c
··· 880 880 unsigned int cryptlen = areq->cryptlen; 881 881 unsigned int authsize = ctx->authsize; 882 882 unsigned int ivsize; 883 - int sg_count; 883 + int sg_count, ret; 884 884 885 885 /* hmac key */ 886 886 map_single_talitos_ptr(dev, &desc->ptr[0], ctx->authkeylen, &ctx->key, ··· 984 984 map_single_talitos_ptr(dev, &desc->ptr[6], ivsize, ctx->iv, 0, 985 985 DMA_FROM_DEVICE); 986 986 987 - return talitos_submit(dev, desc, callback, areq); 987 + ret = talitos_submit(dev, desc, callback, areq); 988 + if (ret != -EINPROGRESS) { 989 + ipsec_esp_unmap(dev, edesc, areq); 990 + kfree(edesc); 991 + } 992 + return ret; 988 993 } 989 994 990 995