summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHerbert Xu <herbert@gondor.apana.org.au>2019-11-19 17:41:31 +0800
committerHerbert Xu <herbert@gondor.apana.org.au>2019-12-11 16:34:45 +0800
commitb61ad212689fc7ef61f32112a0ffddfcbc8a6159 (patch)
treed9babdb6dab9b8fab726ab17ee04e7fd0aed79a7
parentd34dbafdc1260d158a3ff7dac3edb06b680ee343 (diff)
downloadlinux-crypto-b61ad212689fc7ef61f32112a0ffddfcbc8a6159.tar.gz
linux-crypto-b61ad212689fc7ef61f32112a0ffddfcbc8a6159.zip
crypto: pcrypt - Fix user-after-free on module unload
On module unload of pcrypt we must unregister the crypto algorithms first and then tear down the padata structure. As otherwise the crypto algorithms are still alive and can be used while the padata structure is being freed. Fixes: fa0657180cb8 ("crypto: pcrypt - Add pcrypt crypto...") Cc: <stable@vger.kernel.org> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
-rw-r--r--crypto/pcrypt.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/crypto/pcrypt.c b/crypto/pcrypt.c
index 543792e0..81bbea7f 100644
--- a/crypto/pcrypt.c
+++ b/crypto/pcrypt.c
@@ -362,11 +362,12 @@ err:
static void __exit pcrypt_exit(void)
{
+ crypto_unregister_template(&pcrypt_tmpl);
+
pcrypt_fini_padata(pencrypt);
pcrypt_fini_padata(pdecrypt);
kset_unregister(pcrypt_kset);
- crypto_unregister_template(&pcrypt_tmpl);
}
subsys_initcall(pcrypt_init);