Re: [PATCH] stm32: stm32-hash: Add kmalloc_array allocation check

From: Herbert Xu
Date: Thu Feb 23 2023 - 01:01:09 EST


On Sat, Feb 25, 2023 at 05:50:19AM +0800, Li kunyu wrote:
> If rctx->hw_context allocation of the context pointer failed. Returning
> -ENOMEM and assigning NULL to the out pointer should improve the
> robustness of the function.
>
> Signed-off-by: Li kunyu <kunyu@xxxxxxxxxxxx>
> ---
> drivers/crypto/stm32/stm32-hash.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/drivers/crypto/stm32/stm32-hash.c b/drivers/crypto/stm32/stm32-hash.c
> index d33006d43f76..18e79f62be96 100644
> --- a/drivers/crypto/stm32/stm32-hash.c
> +++ b/drivers/crypto/stm32/stm32-hash.c
> @@ -970,6 +970,10 @@ static int stm32_hash_export(struct ahash_request *req, void *out)
> rctx->hw_context = kmalloc_array(3 + HASH_CSR_REGISTER_NUMBER,
> sizeof(u32),
> GFP_KERNEL);
> + if (rctx->hw_context == NULL) {
> + out = NULL;
> + return -ENOMEM;
> + }
>
> preg = rctx->hw_context;

Shouldn't we free the hw_context at the end of the function?

Why does it even need to be stored in rctx in the first place?

Thanks,
--
Email: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt