Message ID | 20200929133819.156092-1-colin.king@canonical.com |
---|---|
State | New |
Headers | show |
Series | [next] crypto: sun8i-ss@: fix memory leak on pointer d | expand |
On Tue, Sep 29, 2020 at 02:38:19PM +0100, Colin King wrote: > From: Colin Ian King <colin.king@canonical.com> > > Currently the error return path on a failed dma_mapping_error call > is not kfree'ing memory allocated to d. Add an extra error exit label > to end of the function where the kfree and return occurs to fix this > issue. > > Addresses-Coverity: ("Resource leak") > Fixes: ac2614d721de ("crypto: sun8i-ss - Add support for the PRNG") > Signed-off-by: Colin Ian King <colin.king@canonical.com> > --- > drivers/crypto/allwinner/sun8i-ss/sun8i-ss-prng.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) This patch is already in the queue: https://patchwork.kernel.org/patch/11804435/ Thanks,
diff --git a/drivers/crypto/allwinner/sun8i-ss/sun8i-ss-prng.c b/drivers/crypto/allwinner/sun8i-ss/sun8i-ss-prng.c index 08a1473b2145..42b02720dbbf 100644 --- a/drivers/crypto/allwinner/sun8i-ss/sun8i-ss-prng.c +++ b/drivers/crypto/allwinner/sun8i-ss/sun8i-ss-prng.c @@ -103,7 +103,8 @@ int sun8i_ss_prng_generate(struct crypto_rng *tfm, const u8 *src, dma_iv = dma_map_single(ss->dev, ctx->seed, ctx->slen, DMA_TO_DEVICE); if (dma_mapping_error(ss->dev, dma_iv)) { dev_err(ss->dev, "Cannot DMA MAP IV\n"); - return -EFAULT; + err = -EFAULT; + goto err_free; } dma_dst = dma_map_single(ss->dev, d, todo, DMA_FROM_DEVICE); @@ -167,6 +168,7 @@ int sun8i_ss_prng_generate(struct crypto_rng *tfm, const u8 *src, memcpy(ctx->seed, d + dlen, ctx->slen); } memzero_explicit(d, todo); +err_free: kfree(d); return err;