From 677e120181d361a2b52e1f04e1fa5084d9a21873 Mon Sep 17 00:00:00 2001 From: Jouni Malinen Date: Wed, 8 May 2019 18:55:57 +0300 Subject: [PATCH] dragonfly: Fix a memory leak on error path This is mostly a theoretical case, but since crypto_bignum_rand() could fail, need to free the allocated struct crypto_bignum *tmp in such a case. Signed-off-by: Jouni Malinen --- src/common/dragonfly.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/common/dragonfly.c b/src/common/dragonfly.c index 10d968ac4..e98bce682 100644 --- a/src/common/dragonfly.c +++ b/src/common/dragonfly.c @@ -40,8 +40,10 @@ int dragonfly_get_random_qr_qnr(const struct crypto_bignum *prime, int res; tmp = crypto_bignum_init(); - if (!tmp || crypto_bignum_rand(tmp, prime) < 0) + if (!tmp || crypto_bignum_rand(tmp, prime) < 0) { + crypto_bignum_deinit(tmp, 0); break; + } res = crypto_bignum_legendre(tmp, prime); if (res == 1 && !(*qr))