]> git.proxmox.com Git - mirror_ubuntu-focal-kernel.git/commitdiff
crypto: pcrypt - Fix user-after-free on module unload
authorHerbert Xu <herbert@gondor.apana.org.au>
Tue, 19 Nov 2019 09:41:31 +0000 (17:41 +0800)
committerPaolo Pisati <paolo.pisati@canonical.com>
Tue, 4 Feb 2020 09:18:50 +0000 (09:18 +0000)
BugLink: https://bugs.launchpad.net/bugs/1861784
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...")
Cc: <stable@vger.kernel.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Paolo Pisati <paolo.pisati@canonical.com>
crypto/pcrypt.c

index 543792e0ebf0341306f34ba3efeae635b6d84f6d..81bbea7f2ba6f0cba916e61bee77d1db5836ea5c 100644 (file)
@@ -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);