mirror of
https://github.com/Mbed-TLS/mbedtls.git
synced 2025-03-25 13:43:31 +00:00
Fix leak of modulus structures in tests
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
This commit is contained in:
parent
a57cf9813a
commit
d008abbc4f
@ -61,7 +61,8 @@ int mbedtls_test_read_mpi_core( mbedtls_mpi_uint **pX, size_t *plimbs,
|
|||||||
* the length of the input. In other words, it preserves leading zeros.
|
* the length of the input. In other words, it preserves leading zeros.
|
||||||
*
|
*
|
||||||
* The limb array is allocated with mbedtls_calloc() and must later be
|
* The limb array is allocated with mbedtls_calloc() and must later be
|
||||||
* freed with mbedtls_free().
|
* freed with mbedtls_free(). You can do that by calling
|
||||||
|
* mbedtls_test_mpi_mod_modulus_free_with_limbs().
|
||||||
*
|
*
|
||||||
* \param[in,out] N A modulus structure. It must be initialized, but
|
* \param[in,out] N A modulus structure. It must be initialized, but
|
||||||
* not set up.
|
* not set up.
|
||||||
@ -74,6 +75,13 @@ int mbedtls_test_read_mpi_modulus( mbedtls_mpi_mod_modulus *N,
|
|||||||
const char *s,
|
const char *s,
|
||||||
mbedtls_mpi_mod_rep_selector int_rep );
|
mbedtls_mpi_mod_rep_selector int_rep );
|
||||||
|
|
||||||
|
/** Free a modulus and its limbs.
|
||||||
|
*
|
||||||
|
* \param[in] N A modulus structure such that there is no other
|
||||||
|
* reference to `N->p`.
|
||||||
|
*/
|
||||||
|
void mbedtls_test_mpi_mod_modulus_free_with_limbs( mbedtls_mpi_mod_modulus *N );
|
||||||
|
|
||||||
/** Read an MPI from a hexadecimal string.
|
/** Read an MPI from a hexadecimal string.
|
||||||
*
|
*
|
||||||
* Like mbedtls_mpi_read_string(), but with tighter guarantees around
|
* Like mbedtls_mpi_read_string(), but with tighter guarantees around
|
||||||
|
@ -102,6 +102,12 @@ int mbedtls_test_read_mpi_modulus( mbedtls_mpi_mod_modulus *N,
|
|||||||
return( ret );
|
return( ret );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void mbedtls_test_mpi_mod_modulus_free_with_limbs( mbedtls_mpi_mod_modulus *N )
|
||||||
|
{
|
||||||
|
mbedtls_free( (mbedtls_mpi_uint*) N->p );
|
||||||
|
mbedtls_mpi_mod_modulus_free( N );
|
||||||
|
}
|
||||||
|
|
||||||
int mbedtls_test_read_mpi( mbedtls_mpi *X, const char *s )
|
int mbedtls_test_read_mpi( mbedtls_mpi *X, const char *s )
|
||||||
{
|
{
|
||||||
int negative = 0;
|
int negative = 0;
|
||||||
|
@ -208,7 +208,7 @@ void mpi_mod_random_values( int min, char *max_hex )
|
|||||||
&rnd_mod_raw, sizeof( rnd_mod_raw ) );
|
&rnd_mod_raw, sizeof( rnd_mod_raw ) );
|
||||||
|
|
||||||
exit:
|
exit:
|
||||||
mbedtls_mpi_mod_modulus_free( &N );
|
mbedtls_test_mpi_mod_modulus_free_with_limbs( &N );
|
||||||
mbedtls_free( R_core );
|
mbedtls_free( R_core );
|
||||||
mbedtls_free( R_mod_raw );
|
mbedtls_free( R_mod_raw );
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user