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.
diff --git a/library/psa_crypto.c b/library/psa_crypto.c
index fe30729..8b25dac 100644
--- a/library/psa_crypto.c
+++ b/library/psa_crypto.c
@@ -3453,7 +3453,7 @@
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 );