OSDN Git Service

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)
committerHerbert Xu <herbert@gondor.apana.org.au>
Wed, 11 Dec 2019 08:34:45 +0000 (16:34 +0800)
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>
crypto/pcrypt.c

index 543792e..81bbea7 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);