mirror of
https://github.com/yuzu-emu/mbedtls.git
synced 2025-01-11 23:55:47 +00:00
psa_crypto_free: destroy the last slot
The last slot in the array was not freed due to an off-by-one error. Amend the fill_slots test to serve as a non-regression test for this issue: without this bug fix, it would cause a memory leak.
This commit is contained in:
parent
996deb18cc
commit
9a05634558
|
@ -3453,7 +3453,7 @@ psa_status_t psa_generate_key( psa_key_slot_t key,
|
|||
void mbedtls_psa_crypto_free( void )
|
||||
{
|
||||
psa_key_slot_t key;
|
||||
for( key = 1; key < PSA_KEY_SLOT_COUNT; key++ )
|
||||
for( key = 1; key <= PSA_KEY_SLOT_COUNT; key++ )
|
||||
psa_destroy_key( key );
|
||||
mbedtls_ctr_drbg_free( &global_data.ctr_drbg );
|
||||
mbedtls_entropy_free( &global_data.entropy );
|
||||
|
|
|
@ -496,12 +496,10 @@ void fill_slots( int max_arg )
|
|||
&exported_size ) == PSA_SUCCESS );
|
||||
TEST_ASSERT( exported_size == sizeof( slot ) );
|
||||
TEST_ASSERT( memcmp( exported, &slot, sizeof( slot ) ) == 0 );
|
||||
TEST_ASSERT( psa_destroy_key( slot ) == PSA_SUCCESS );
|
||||
}
|
||||
|
||||
exit:
|
||||
for( slot = 1; slot <= max; slot++ )
|
||||
psa_destroy_key( slot );
|
||||
/* Do not destroy the keys. mbedtls_psa_crypto_free() should do it. */
|
||||
mbedtls_psa_crypto_free( );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
|
Loading…
Reference in a new issue