summaryrefslogtreecommitdiffstats
path: root/crypto
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2019-07-05 06:31:19 +0200
committerLinus Torvalds <torvalds@linux-foundation.org>2019-07-05 06:31:19 +0200
commitee39d46dcaf8f25894f13236d3d984d9a4d2fd3e (patch)
tree6119a1f94a6f5c0affc14103784f0d0933aa30d8 /crypto
parentMerge branch 'akpm' (patches from Andrew) (diff)
parentcrypto: user - prevent operating on larval algorithms (diff)
downloadlinux-ee39d46dcaf8f25894f13236d3d984d9a4d2fd3e.tar.xz
linux-ee39d46dcaf8f25894f13236d3d984d9a4d2fd3e.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 'crypto')
-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 1ce1bf6d3bab..5f76c6e222c6 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 d5d5d155340b..c65e39005ce2 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;