Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

crypto: atmel-aes - guard unregister on error in atmel_aes_register_algs

Ensure the device supports XTS and GCM with 'has_xts' and 'has_gcm'
before unregistering algorithms when XTS or authenc registration fails,
which would trigger a WARN in crypto_unregister_alg().

Currently, with the capabilities defined in atmel_aes_get_cap(), this
bug cannot happen because all devices that support XTS and authenc also
support GCM, but the error handling should still be correct regardless
of hardware capabilities.

Fixes: d52db5188a87 ("crypto: atmel-aes - add support to the XTS mode")
Signed-off-by: Thorsten Blum <thorsten.blum@linux.dev>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>

authored by

Thorsten Blum and committed by
Herbert Xu
57a13941 464da0bf

+4 -2
+4 -2
drivers/crypto/atmel-aes.c
··· 2270 2270 /* i = ARRAY_SIZE(aes_authenc_algs); */ 2271 2271 err_aes_authenc_alg: 2272 2272 crypto_unregister_aeads(aes_authenc_algs, i); 2273 - crypto_unregister_skcipher(&aes_xts_alg); 2273 + if (dd->caps.has_xts) 2274 + crypto_unregister_skcipher(&aes_xts_alg); 2274 2275 #endif 2275 2276 err_aes_xts_alg: 2276 - crypto_unregister_aead(&aes_gcm_alg); 2277 + if (dd->caps.has_gcm) 2278 + crypto_unregister_aead(&aes_gcm_alg); 2277 2279 err_aes_gcm_alg: 2278 2280 i = ARRAY_SIZE(aes_algs); 2279 2281 err_aes_algs: