From 122d00291264a705106a45e7cfe7fec131925248 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Wed, 23 Jan 2019 10:55:43 +0100 Subject: [PATCH] Fix memory leak in psa_copy_key --- library/psa_crypto.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/library/psa_crypto.c b/library/psa_crypto.c index 3d86e85c7..d9d48708c 100644 --- a/library/psa_crypto.c +++ b/library/psa_crypto.c @@ -1228,16 +1228,15 @@ static psa_status_t psa_copy_key_material( const psa_key_slot_t *source, psa_get_key_bits( source ) ); buffer = mbedtls_calloc( 1, buffer_size ); if( buffer == NULL ) - { - status = PSA_ERROR_INSUFFICIENT_MEMORY; - goto exit; - } + return( PSA_ERROR_INSUFFICIENT_MEMORY ); status = psa_internal_export_key( source, buffer, buffer_size, &length, 0 ); if( status != PSA_SUCCESS ) goto exit; status = psa_import_key( target, source->type, buffer, length ); exit: + mbedtls_platform_zeroize( buffer, buffer_size ); + mbedtls_free( buffer ); return( status ); }