diff mbox series

crypto: inside-secure - Fix the return value of safexcel_xcbcmac_cra_init()

Message ID 20241031112755.2949815-1-lihuafei1@huawei.com (mailing list archive)
State Accepted
Delegated to: Herbert Xu
Headers show
Series crypto: inside-secure - Fix the return value of safexcel_xcbcmac_cra_init() | expand

Commit Message

Li Huafei Oct. 31, 2024, 11:27 a.m. UTC
The commit 320406cb60b6 ("crypto: inside-secure - Replace generic aes
with libaes") replaced crypto_alloc_cipher() with kmalloc(), but did not
modify the handling of the return value. When kmalloc() returns NULL,
PTR_ERR_OR_ZERO(NULL) returns 0, but in fact, the memory allocation has
failed, and -ENOMEM should be returned.

Fixes: 320406cb60b6 ("crypto: inside-secure - Replace generic aes with libaes")
Signed-off-by: Li Huafei <lihuafei1@huawei.com>
---
 drivers/crypto/inside-secure/safexcel_hash.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Antoine Tenart Nov. 5, 2024, 4 p.m. UTC | #1
Quoting Li Huafei (2024-10-31 12:27:55)
> The commit 320406cb60b6 ("crypto: inside-secure - Replace generic aes
> with libaes") replaced crypto_alloc_cipher() with kmalloc(), but did not
> modify the handling of the return value. When kmalloc() returns NULL,
> PTR_ERR_OR_ZERO(NULL) returns 0, but in fact, the memory allocation has
> failed, and -ENOMEM should be returned.
> 
> Fixes: 320406cb60b6 ("crypto: inside-secure - Replace generic aes with libaes")
> Signed-off-by: Li Huafei <lihuafei1@huawei.com>

Acked-by: Antoine Tenart <atenart@kernel.org>

Thanks!

> ---
>  drivers/crypto/inside-secure/safexcel_hash.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/crypto/inside-secure/safexcel_hash.c b/drivers/crypto/inside-secure/safexcel_hash.c
> index e17577b785c3..f44c08f5f5ec 100644
> --- a/drivers/crypto/inside-secure/safexcel_hash.c
> +++ b/drivers/crypto/inside-secure/safexcel_hash.c
> @@ -2093,7 +2093,7 @@ static int safexcel_xcbcmac_cra_init(struct crypto_tfm *tfm)
>  
>         safexcel_ahash_cra_init(tfm);
>         ctx->aes = kmalloc(sizeof(*ctx->aes), GFP_KERNEL);
> -       return PTR_ERR_OR_ZERO(ctx->aes);
> +       return ctx->aes == NULL ? -ENOMEM : 0;
>  }
>  
>  static void safexcel_xcbcmac_cra_exit(struct crypto_tfm *tfm)
> -- 
> 2.25.1
>
Li Huafei Nov. 7, 2024, 1:18 a.m. UTC | #2
On 2024/11/6 0:00, Antoine Tenart wrote:
> Quoting Li Huafei (2024-10-31 12:27:55)
>> The commit 320406cb60b6 ("crypto: inside-secure - Replace generic aes
>> with libaes") replaced crypto_alloc_cipher() with kmalloc(), but did not
>> modify the handling of the return value. When kmalloc() returns NULL,
>> PTR_ERR_OR_ZERO(NULL) returns 0, but in fact, the memory allocation has
>> failed, and -ENOMEM should be returned.
>>
>> Fixes: 320406cb60b6 ("crypto: inside-secure - Replace generic aes with libaes")
>> Signed-off-by: Li Huafei <lihuafei1@huawei.com>
> 
> Acked-by: Antoine Tenart <atenart@kernel.org>
> 
> Thanks!
> 

Thank you for reviewing.

>> ---
>>  drivers/crypto/inside-secure/safexcel_hash.c | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/crypto/inside-secure/safexcel_hash.c b/drivers/crypto/inside-secure/safexcel_hash.c
>> index e17577b785c3..f44c08f5f5ec 100644
>> --- a/drivers/crypto/inside-secure/safexcel_hash.c
>> +++ b/drivers/crypto/inside-secure/safexcel_hash.c
>> @@ -2093,7 +2093,7 @@ static int safexcel_xcbcmac_cra_init(struct crypto_tfm *tfm)
>>  
>>         safexcel_ahash_cra_init(tfm);
>>         ctx->aes = kmalloc(sizeof(*ctx->aes), GFP_KERNEL);
>> -       return PTR_ERR_OR_ZERO(ctx->aes);
>> +       return ctx->aes == NULL ? -ENOMEM : 0;
>>  }
>>  
>>  static void safexcel_xcbcmac_cra_exit(struct crypto_tfm *tfm)
>> -- 
>> 2.25.1
>>
> .
>
Herbert Xu Nov. 10, 2024, 3:55 a.m. UTC | #3
On Thu, Oct 31, 2024 at 07:27:55PM +0800, Li Huafei wrote:
> The commit 320406cb60b6 ("crypto: inside-secure - Replace generic aes
> with libaes") replaced crypto_alloc_cipher() with kmalloc(), but did not
> modify the handling of the return value. When kmalloc() returns NULL,
> PTR_ERR_OR_ZERO(NULL) returns 0, but in fact, the memory allocation has
> failed, and -ENOMEM should be returned.
> 
> Fixes: 320406cb60b6 ("crypto: inside-secure - Replace generic aes with libaes")
> Signed-off-by: Li Huafei <lihuafei1@huawei.com>
> ---
>  drivers/crypto/inside-secure/safexcel_hash.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)

Patch applied.  Thanks.
diff mbox series

Patch

diff --git a/drivers/crypto/inside-secure/safexcel_hash.c b/drivers/crypto/inside-secure/safexcel_hash.c
index e17577b785c3..f44c08f5f5ec 100644
--- a/drivers/crypto/inside-secure/safexcel_hash.c
+++ b/drivers/crypto/inside-secure/safexcel_hash.c
@@ -2093,7 +2093,7 @@  static int safexcel_xcbcmac_cra_init(struct crypto_tfm *tfm)
 
 	safexcel_ahash_cra_init(tfm);
 	ctx->aes = kmalloc(sizeof(*ctx->aes), GFP_KERNEL);
-	return PTR_ERR_OR_ZERO(ctx->aes);
+	return ctx->aes == NULL ? -ENOMEM : 0;
 }
 
 static void safexcel_xcbcmac_cra_exit(struct crypto_tfm *tfm)