Эх сурвалжийг харах

crypto: arm64/aes - do not call crypto_unregister_skcipher twice on error

When a cipher fails to register in aes_init(), the error path goes thought
aes_exit() then crypto_unregister_skciphers().
Since aes_exit calls also crypto_unregister_skcipher, this triggers a
refcount_t: underflow; use-after-free.

Signed-off-by: Corentin Labbe <clabbe@baylibre.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Corentin Labbe 7 жил өмнө
parent
commit
45223b7811

+ 1 - 0
arch/arm64/crypto/aes-glue.c

@@ -665,6 +665,7 @@ static int __init aes_init(void)
 
 
 unregister_simds:
 unregister_simds:
 	aes_exit();
 	aes_exit();
+	return err;
 unregister_ciphers:
 unregister_ciphers:
 	crypto_unregister_skciphers(aes_algs, ARRAY_SIZE(aes_algs));
 	crypto_unregister_skciphers(aes_algs, ARRAY_SIZE(aes_algs));
 	return err;
 	return err;