diff mbox series

crypto: bcm - add error check in the ahash_hmac_init function

Message ID 20241104121745.1634866-1-chenridong@huaweicloud.com (mailing list archive)
State Under Review
Delegated to: Herbert Xu
Headers show
Series crypto: bcm - add error check in the ahash_hmac_init function | expand

Commit Message

Chen Ridong Nov. 4, 2024, 12:17 p.m. UTC
From: Chen Ridong <chenridong@huawei.com>

The ahash_init functions may return fails. The ahash_hmac_init should
not return ok when ahash_init returns error. For an example, ahash_init
will return -ENOMEM when allocation memory is error.

Fixes: 9d12ba86f818 ("crypto: brcm - Add Broadcom SPU driver")
Signed-off-by: Chen Ridong <chenridong@huawei.com>
---
 drivers/crypto/bcm/cipher.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

Comments

Chen Ridong Nov. 11, 2024, 2:22 a.m. UTC | #1
On 2024/11/4 20:17, Chen Ridong wrote:
> From: Chen Ridong <chenridong@huawei.com>
> 
> The ahash_init functions may return fails. The ahash_hmac_init should
> not return ok when ahash_init returns error. For an example, ahash_init
> will return -ENOMEM when allocation memory is error.
> 
> Fixes: 9d12ba86f818 ("crypto: brcm - Add Broadcom SPU driver")
> Signed-off-by: Chen Ridong <chenridong@huawei.com>
> ---
>  drivers/crypto/bcm/cipher.c | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/crypto/bcm/cipher.c b/drivers/crypto/bcm/cipher.c
> index 7540eb7cd331..9e6798efbfb7 100644
> --- a/drivers/crypto/bcm/cipher.c
> +++ b/drivers/crypto/bcm/cipher.c
> @@ -2415,6 +2415,7 @@ static int ahash_hmac_setkey(struct crypto_ahash *ahash, const u8 *key,
>  
>  static int ahash_hmac_init(struct ahash_request *req)
>  {
> +	int ret;
>  	struct iproc_reqctx_s *rctx = ahash_request_ctx(req);
>  	struct crypto_ahash *tfm = crypto_ahash_reqtfm(req);
>  	struct iproc_ctx_s *ctx = crypto_ahash_ctx(tfm);
> @@ -2424,7 +2425,9 @@ static int ahash_hmac_init(struct ahash_request *req)
>  	flow_log("ahash_hmac_init()\n");
>  
>  	/* init the context as a hash */
> -	ahash_init(req);
> +	ret = ahash_init(req);
> +	if (ret)
> +		return ret;
>  
>  	if (!spu_no_incr_hash(ctx)) {
>  		/* SPU-M can do incr hashing but needs sw for outer HMAC */

Friendly ping.
diff mbox series

Patch

diff --git a/drivers/crypto/bcm/cipher.c b/drivers/crypto/bcm/cipher.c
index 7540eb7cd331..9e6798efbfb7 100644
--- a/drivers/crypto/bcm/cipher.c
+++ b/drivers/crypto/bcm/cipher.c
@@ -2415,6 +2415,7 @@  static int ahash_hmac_setkey(struct crypto_ahash *ahash, const u8 *key,
 
 static int ahash_hmac_init(struct ahash_request *req)
 {
+	int ret;
 	struct iproc_reqctx_s *rctx = ahash_request_ctx(req);
 	struct crypto_ahash *tfm = crypto_ahash_reqtfm(req);
 	struct iproc_ctx_s *ctx = crypto_ahash_ctx(tfm);
@@ -2424,7 +2425,9 @@  static int ahash_hmac_init(struct ahash_request *req)
 	flow_log("ahash_hmac_init()\n");
 
 	/* init the context as a hash */
-	ahash_init(req);
+	ret = ahash_init(req);
+	if (ret)
+		return ret;
 
 	if (!spu_no_incr_hash(ctx)) {
 		/* SPU-M can do incr hashing but needs sw for outer HMAC */