[PATCH] crypto: ccree: fix a memory leak in cc_mac_digest()

Haoxiang Li posted 1 patch 3 days, 2 hours ago
drivers/crypto/ccree/cc_hash.c | 1 +
1 file changed, 1 insertion(+)
[PATCH] crypto: ccree: fix a memory leak in cc_mac_digest()
Posted by Haoxiang Li 3 days, 2 hours ago
Add cc_unmap_result() if cc_map_hash_request_final()
fails to prevent potential memory leak.

Fixes: 63893811b0fc ("crypto: ccree - add ahash support")
Cc: stable@vger.kernel.org
Signed-off-by: Haoxiang Li <lihaoxiang@isrc.iscas.ac.cn>
---
 drivers/crypto/ccree/cc_hash.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/crypto/ccree/cc_hash.c b/drivers/crypto/ccree/cc_hash.c
index c6d085c8ff79..73179bf725a7 100644
--- a/drivers/crypto/ccree/cc_hash.c
+++ b/drivers/crypto/ccree/cc_hash.c
@@ -1448,6 +1448,7 @@ static int cc_mac_digest(struct ahash_request *req)
 	if (cc_map_hash_request_final(ctx->drvdata, state, req->src,
 				      req->nbytes, 1, flags)) {
 		dev_err(dev, "map_ahash_request_final() failed\n");
+		cc_unmap_result(dev, state, digestsize, req->result);
 		cc_unmap_req(dev, state, ctx);
 		return -ENOMEM;
 	}
-- 
2.25.1
Re: [PATCH] crypto: ccree: fix a memory leak in cc_mac_digest()
Posted by Markus Elfring 2 days, 18 hours ago
…
> +++ b/drivers/crypto/ccree/cc_hash.c
> @@ -1448,6 +1448,7 @@ static int cc_mac_digest(struct ahash_request *req)
>  	if (cc_map_hash_request_final(ctx->drvdata, state, req->src,
>  				      req->nbytes, 1, flags)) {
>  		dev_err(dev, "map_ahash_request_final() failed\n");
> +		cc_unmap_result(dev, state, digestsize, req->result);
>  		cc_unmap_req(dev, state, ctx);
>  		return -ENOMEM;
>  	}

How do you think about to avoid also a bit of duplicate source code here?
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/process/coding-style.rst?h=v7.0-rc6#n526

Regards,
Markus