summaryrefslogtreecommitdiff
path: root/crypto
diff options
context:
space:
mode:
authorVincent Whitchurch <vincent.whitchurch@axis.com>2019-07-02 09:53:25 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2019-07-10 09:54:38 +0200
commita86c45d26c87c0434fb6e6805bc48ba160a08965 (patch)
tree8b0b85bb8cf03a9fd63e7e2404ebe5aa91f39951 /crypto
parentd06037bc128d646f0addca86a268205c0e3ad5d8 (diff)
crypto: cryptd - Fix skcipher instance memory leak
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>
Diffstat (limited to 'crypto')
-rw-r--r--crypto/cryptd.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/crypto/cryptd.c b/crypto/cryptd.c
index 248f6ba41688..4cc1871646a8 100644
--- a/crypto/cryptd.c
+++ b/crypto/cryptd.c
@@ -585,6 +585,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,