crypto: pcrypt - Fix user-after-free on module unload
diff mbox series

Message ID 20191119094131.x7gkxdi5clyxk3zd@gondor.apana.org.au
State Accepted
Delegated to: Herbert Xu
Headers show
Series
  • crypto: pcrypt - Fix user-after-free on module unload
Related show

Commit Message

Herbert Xu Nov. 19, 2019, 9:41 a.m. UTC
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>

Patch
diff mbox series

diff --git a/crypto/pcrypt.c b/crypto/pcrypt.c
index 543792e0ebf0..3e026e7a7e75 100644
--- a/crypto/pcrypt.c
+++ b/crypto/pcrypt.c
@@ -362,11 +392,12 @@  static int __init pcrypt_init(void)
 
 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);