diff options
author | Herbert Xu <herbert@gondor.apana.org.au> | 2019-11-19 17:41:31 +0800 |
---|---|---|
committer | Ben Hutchings <ben@decadent.org.uk> | 2020-05-22 21:19:14 +0100 |
commit | 587aa653021a37163da8f954df8bcd5dcd2f5c79 (patch) | |
tree | b042e607548c1a057a55fdfe081df772022e6e52 | |
parent | a0fc373c3514e8e1e3be6548a12bbee469a48198 (diff) | |
download | linux-stable-587aa653021a37163da8f954df8bcd5dcd2f5c79.tar.gz |
crypto: pcrypt - Fix user-after-free on module unload
commit 07bfd9bdf568a38d9440c607b72342036011f727 upstream.
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...")
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
[bwh: Backported to 3.16: adjust context]
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
-rw-r--r-- | crypto/pcrypt.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/crypto/pcrypt.c b/crypto/pcrypt.c index a96de79498eec..86c04c2f81d1b 100644 --- a/crypto/pcrypt.c +++ b/crypto/pcrypt.c @@ -552,11 +552,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); } module_init(pcrypt_init); |