summaryrefslogtreecommitdiffstats
path: root/crypto/pcrypt.c
diff options
context:
space:
mode:
authorHerbert Xu <herbert@gondor.apana.org.au>2019-11-19 10:41:31 +0100
committerHerbert Xu <herbert@gondor.apana.org.au>2019-12-11 09:34:45 +0100
commit07bfd9bdf568a38d9440c607b72342036011f727 (patch)
tree1ffc7aea0a77f9e80bb1a09748b8ff8b5f54f93b /crypto/pcrypt.c
parentcrypto: hisilicon - Remove useless MODULE macros (diff)
downloadlinux-07bfd9bdf568a38d9440c607b72342036011f727.tar.xz
linux-07bfd9bdf568a38d9440c607b72342036011f727.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: 5068c7a883d1 ("crypto: pcrypt - Add pcrypt crypto...") Cc: <stable@vger.kernel.org> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'crypto/pcrypt.c')
-rw-r--r--crypto/pcrypt.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/crypto/pcrypt.c b/crypto/pcrypt.c
index 543792e0ebf0..81bbea7f2ba6 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);