Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7829a0c1 authored by Eric Biggers's avatar Eric Biggers Committed by Herbert Xu
Browse files

crypto: hmac - fix memory leak in hmac_init_tfm()



When I added the sanity check of 'descsize', I missed that the child
hash tfm needs to be freed if the sanity check fails.  Of course this
should never happen, hence the use of WARN_ON(), but it should be fixed.

Fixes: e1354400 ("crypto: hash - fix incorrect HASH_MAX_DESCSIZE")
Signed-off-by: default avatarEric Biggers <ebiggers@google.com>
Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
parent 9c5b34c2
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -157,8 +157,10 @@ static int hmac_init_tfm(struct crypto_tfm *tfm)

	parent->descsize = sizeof(struct shash_desc) +
			   crypto_shash_descsize(hash);
	if (WARN_ON(parent->descsize > HASH_MAX_DESCSIZE))
	if (WARN_ON(parent->descsize > HASH_MAX_DESCSIZE)) {
		crypto_free_shash(hash);
		return -EINVAL;
	}

	ctx->hash = hash;
	return 0;