summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2019-07-05 13:31:19 +0900
committerLinus Torvalds <torvalds@linux-foundation.org>2019-07-05 13:31:19 +0900
commitca90d5f52148d6fb15bb618faf26e8131c9307a4 (patch)
tree64472ccd13e1e641da8a431412b8b820f9b13db0
parent839ae06412de09b994c5c317600e029b1012b4ff (diff)
parent1455c34baef7ee5912f383b26255915c90534e88 (diff)
downloadlinux-crypto-ca90d5f52148d6fb15bb618faf26e8131c9307a4.tar.gz
linux-crypto-ca90d5f52148d6fb15bb618faf26e8131c9307a4.zip
Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
Pull crypto fixes from Herbert Xu: "This fixes two memory leaks and a list corruption bug" * 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: crypto: user - prevent operating on larval algorithms crypto: cryptd - Fix skcipher instance memory leak lib/mpi: Fix karactx leak in mpi_powm
Diffstat (limited to '')
-rw-r--r--crypto/cryptd.c1
-rw-r--r--crypto/crypto_user_base.c3
2 files changed, 4 insertions, 0 deletions
diff --git a/crypto/cryptd.c b/crypto/cryptd.c
index 1ce1bf6d..5f76c6e2 100644
--- a/crypto/cryptd.c
+++ b/crypto/cryptd.c
@@ -388,6 +388,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,
diff --git a/crypto/crypto_user_base.c b/crypto/crypto_user_base.c
index d5d5d155..c65e3900 100644
--- a/crypto/crypto_user_base.c
+++ b/crypto/crypto_user_base.c
@@ -44,6 +44,9 @@ struct crypto_alg *crypto_alg_match(struct crypto_user_alg *p, int exact)
list_for_each_entry(q, &crypto_alg_list, cra_list) {
int match = 0;
+ if (crypto_is_larval(q))
+ continue;
+
if ((q->cra_flags ^ p->cru_type) & p->cru_mask)
continue;