diff options
author | Vincent Whitchurch <vincent.whitchurch@axis.com> | 2019-07-02 09:53:25 +0200 |
---|---|---|
committer | Herbert Xu <herbert@gondor.apana.org.au> | 2019-07-03 22:11:55 +0800 |
commit | a785450da98250bc8300ee770ce92993b8f6bc97 (patch) | |
tree | f3dbdfd3ef7d50c4f0ae0363e06a425759538bd4 | |
parent | a4f353ef678a3e189bba959cb57e8542ad588898 (diff) | |
download | linux-crypto-a785450da98250bc8300ee770ce92993b8f6bc97.tar.gz linux-crypto-a785450da98250bc8300ee770ce92993b8f6bc97.zip |
crypto: cryptd - Fix skcipher instance memory leak
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: d56dc413a50d ("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>
Diffstat (limited to '')
-rw-r--r-- | crypto/cryptd.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/crypto/cryptd.c b/crypto/cryptd.c index b3bb9939..c8434042 100644 --- a/crypto/cryptd.c +++ b/crypto/cryptd.c @@ -393,6 +393,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, |