Commit 11540d02 authored by Nikos Mavrogiannopoulos's avatar Nikos Mavrogiannopoulos Committed by Niels Möller

ecdsa_verify: eliminated memory leak on error path

parent f8ad54fa
...@@ -52,7 +52,7 @@ ecdsa_verify (const struct ecc_point *pub, ...@@ -52,7 +52,7 @@ ecdsa_verify (const struct ecc_point *pub,
/* For ECC_MUL_A_WBITS == 0, at most 1512 bytes. With /* For ECC_MUL_A_WBITS == 0, at most 1512 bytes. With
ECC_MUL_A_WBITS == 4, currently needs 67 * ecc->size, at most ECC_MUL_A_WBITS == 4, currently needs 67 * ecc->size, at most
4824 bytes. Don't use stack allocation for this. */ 4824 bytes. Don't use stack allocation for this. */
mp_limb_t *scratch = gmp_alloc_limbs (itch); mp_limb_t *scratch;
int res; int res;
#define rp scratch #define rp scratch
...@@ -63,6 +63,8 @@ ecdsa_verify (const struct ecc_point *pub, ...@@ -63,6 +63,8 @@ ecdsa_verify (const struct ecc_point *pub,
|| mpz_sgn (signature->s) <= 0 || mpz_size (signature->s) > size) || mpz_sgn (signature->s) <= 0 || mpz_size (signature->s) > size)
return 0; return 0;
scratch = gmp_alloc_limbs (itch);
mpz_limbs_copy (rp, signature->r, size); mpz_limbs_copy (rp, signature->r, size);
mpz_limbs_copy (sp, signature->s, size); mpz_limbs_copy (sp, signature->s, size);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment