]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commitdiff
crypto: cryptd - Fix skcipher instance memory leak
authorVincent Whitchurch <vincent.whitchurch@axis.com>
Tue, 2 Jul 2019 07:53:25 +0000 (09:53 +0200)
committerKleber Sacilotto de Souza <kleber.souza@canonical.com>
Wed, 14 Aug 2019 09:18:49 +0000 (11:18 +0200)
BugLink: https://bugs.launchpad.net/bugs/1838824
commit 1a0fad630e0b7cff38e7691b28b0517cfbb0633f upstream.

cryptd_skcipher_free() fails to free the struct skcipher_instance
allocated in cryptd_create_skcipher(), leading to a memory leak.  This
is detected by kmemleak on bootup on ARM64 platforms:

 unreferenced object 0xffff80003377b180 (size 1024):
   comm "cryptomgr_probe", pid 822, jiffies 4294894830 (age 52.760s)
   backtrace:
     kmem_cache_alloc_trace+0x270/0x2d0
     cryptd_create+0x990/0x124c
     cryptomgr_probe+0x5c/0x1e8
     kthread+0x258/0x318
     ret_from_fork+0x10/0x1c

Fixes: 4e0958d19bd8 ("crypto: cryptd - Add support for skcipher")
Cc: <stable@vger.kernel.org>
Signed-off-by: Vincent Whitchurch <vincent.whitchurch@axis.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Kamal Mostafa <kamal@canonical.com>
Signed-off-by: Khalid Elmously <khalid.elmously@canonical.com>
crypto/cryptd.c

index c32b98b5daf8ce088d2b819e0f82a0c490d2a746..f0827f8e9be53d4210288e939b082525486cba81 100644 (file)
@@ -583,6 +583,7 @@ static void cryptd_skcipher_free(struct skcipher_instance *inst)
        struct skcipherd_instance_ctx *ctx = skcipher_instance_ctx(inst);
 
        crypto_drop_skcipher(&ctx->spawn);
+       kfree(inst);
 }
 
 static int cryptd_create_skcipher(struct crypto_template *tmpl,