diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2019-07-05 13:31:19 +0900 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2019-07-05 13:31:19 +0900 |
commit | ee39d46dcaf8f25894f13236d3d984d9a4d2fd3e (patch) | |
tree | 6119a1f94a6f5c0affc14103784f0d0933aa30d8 /crypto | |
parent | a5fff14a0c7989fbc8316a43f52aed1804f02ddd (diff) | |
parent | 21d4120ec6f5b5992b01b96ac484701163917b63 (diff) | |
download | linux-ee39d46dcaf8f25894f13236d3d984d9a4d2fd3e.tar.bz2 |
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.c | 1 | ||||
-rw-r--r-- | crypto/crypto_user_base.c | 3 |
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; |