Re: [PATCH -next 1/2] crypto: api - Fix IS_ERR() vs NULL check

From: cuigaosheng
Date: Thu Aug 25 2022 - 09:11:04 EST


Thanks for taking the time to review this patch.

crypto_alloc_test_larval() will return null if manager is disabled,
it will not return error pointers, IS_ERR should not be used to checking
return value, should we fix it? or use another solution?

It would be helpful if you could give some advice or fix the problem by yourself.

Thanks very much!

在 2022/8/25 16:50, Herbert Xu 写道:
On Thu, Aug 25, 2022 at 04:41:37PM +0800, Gaosheng Cui wrote:
The crypto_alloc_test_larval() will return null if manager is disabled,
it may not return error pointers, so using IS_ERR_OR_NULL()
to check the return value to fix this.

The __crypto_register_alg() will return null if manager is disabled,
it may not return error pointers, so using IS_ERR_OR_NULL()
to check the return value to fix this.

Fixes: cad439fc040e ("crypto: api - Do not create test larvals if manager is disabled")
Signed-off-by: Gaosheng Cui <cuigaosheng1@xxxxxxxxxx>
---
crypto/algapi.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/crypto/algapi.c b/crypto/algapi.c
index 5c69ff8e8fa5..5a080b8aaa11 100644
--- a/crypto/algapi.c
+++ b/crypto/algapi.c
@@ -283,7 +283,7 @@ static struct crypto_larval *__crypto_register_alg(struct crypto_alg *alg)
}
larval = crypto_alloc_test_larval(alg);
- if (IS_ERR(larval))
+ if (IS_ERR_OR_NULL(larval))
goto out;
A NULL indicates success, why are you jumping to the error path?

Cheers,