mirror of
https://github.com/yuzu-emu/mbedtls.git
synced 2024-11-27 04:24:14 +01:00
Initialize RSA context in RSA test suite before first potentially failing operation
The function `mbedtls_rsa_gen_key` from `test_suite_rsa.function` initialized a stack allocated RSA context only after seeding the CTR DRBG. If the latter operation failed, the cleanup code tried to free the uninitialized RSA context, potentially resulting in a segmentation fault. Fixes one aspect of #1023.
This commit is contained in:
parent
1fe5e8ab44
commit
e4875e015f
@ -667,13 +667,12 @@ void mbedtls_rsa_gen_key( int nrbits, int exponent, int result)
|
|||||||
const char *pers = "test_suite_rsa";
|
const char *pers = "test_suite_rsa";
|
||||||
|
|
||||||
mbedtls_ctr_drbg_init( &ctr_drbg );
|
mbedtls_ctr_drbg_init( &ctr_drbg );
|
||||||
|
|
||||||
mbedtls_entropy_init( &entropy );
|
mbedtls_entropy_init( &entropy );
|
||||||
|
mbedtls_rsa_init ( &ctx, 0, 0 );
|
||||||
|
|
||||||
TEST_ASSERT( mbedtls_ctr_drbg_seed( &ctr_drbg, mbedtls_entropy_func, &entropy,
|
TEST_ASSERT( mbedtls_ctr_drbg_seed( &ctr_drbg, mbedtls_entropy_func, &entropy,
|
||||||
(const unsigned char *) pers, strlen( pers ) ) == 0 );
|
(const unsigned char *) pers, strlen( pers ) ) == 0 );
|
||||||
|
|
||||||
mbedtls_rsa_init( &ctx, 0, 0 );
|
|
||||||
|
|
||||||
TEST_ASSERT( mbedtls_rsa_gen_key( &ctx, mbedtls_ctr_drbg_random, &ctr_drbg, nrbits, exponent ) == result );
|
TEST_ASSERT( mbedtls_rsa_gen_key( &ctx, mbedtls_ctr_drbg_random, &ctr_drbg, nrbits, exponent ) == result );
|
||||||
if( result == 0 )
|
if( result == 0 )
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user