Fix memory failure handling in test_format_storage_data_check

Fail the test instead of crashing if a memory allocation fails.

Free memory even if the test fails.
This commit is contained in:
Gilles Peskine 2019-12-02 20:50:16 +01:00
parent 667c111416
commit fb745bf618

View file

@ -32,8 +32,9 @@ void format_storage_data_check( data_t *key_data,
int key_lifetime, int key_type, int key_lifetime, int key_type,
int key_usage, int key_alg, int key_alg2 ) int key_usage, int key_alg, int key_alg2 )
{ {
uint8_t *file_data; uint8_t *file_data = NULL;
size_t file_data_length; size_t file_data_length =
key_data->len + sizeof( psa_persistent_key_storage_format );
psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT;
psa_set_key_lifetime( &attributes, key_lifetime ); psa_set_key_lifetime( &attributes, key_lifetime );
@ -42,14 +43,15 @@ void format_storage_data_check( data_t *key_data,
psa_set_key_algorithm( &attributes, key_alg ); psa_set_key_algorithm( &attributes, key_alg );
psa_set_key_enrollment_algorithm( &attributes, key_alg2 ); psa_set_key_enrollment_algorithm( &attributes, key_alg2 );
file_data_length = key_data->len + sizeof( psa_persistent_key_storage_format ); ASSERT_ALLOC( file_data, file_data_length );
file_data = mbedtls_calloc( 1, file_data_length );
psa_format_key_data_for_storage( key_data->x, key_data->len, psa_format_key_data_for_storage( key_data->x, key_data->len,
&attributes.core, &attributes.core,
file_data ); file_data );
ASSERT_COMPARE( expected_file_data->x, expected_file_data->len, ASSERT_COMPARE( expected_file_data->x, expected_file_data->len,
file_data, file_data_length ); file_data, file_data_length );
exit:
mbedtls_free( file_data ); mbedtls_free( file_data );
} }
/* END_CASE */ /* END_CASE */