Allocate the right amount of memory
Signed-off-by: Gabor Mezei <gabor.mezei@arm.com>
diff --git a/library/ecp_curves.c b/library/ecp_curves.c
index a660f57..e7ccd41 100644
--- a/library/ecp_curves.c
+++ b/library/ecp_curves.c
@@ -5538,19 +5538,19 @@
{
int ret = 0;
- size_t R_limbs = P_KOBLITZ_R;
- size_t M_limbs = X_limbs + R_limbs + adjust;
- mbedtls_mpi_uint *M = mbedtls_calloc(M_limbs, ciL);
- if (M == NULL) {
- return MBEDTLS_ERR_ECP_ALLOC_FAILED;
- }
-
size_t A1_limbs = X_limbs - (P_limbs - adjust);
if (A1_limbs > P_limbs + adjust) {
A1_limbs = P_limbs + adjust;
}
mbedtls_mpi_uint *A1 = mbedtls_calloc(A1_limbs, ciL);
if (A1 == NULL) {
+ return MBEDTLS_ERR_ECP_ALLOC_FAILED;
+ }
+
+ size_t R_limbs = P_KOBLITZ_R;
+ size_t M_limbs = A1_limbs + R_limbs;
+ mbedtls_mpi_uint *M = mbedtls_calloc(M_limbs, ciL);
+ if (M == NULL) {
ret = MBEDTLS_ERR_ECP_ALLOC_FAILED;
goto cleanup;
}