diff --git a/ChangeLog.d/fix_psa_crypto_leak.txt b/ChangeLog.d/fix_psa_crypto_leak.txt new file mode 100644 index 000000000..5add73dbd --- /dev/null +++ b/ChangeLog.d/fix_psa_crypto_leak.txt @@ -0,0 +1,2 @@ +Bugfix + * Fix memory leak that occured in error case in psa_generate_derived_key_internal() diff --git a/library/psa_crypto.c b/library/psa_crypto.c index c00875bd0..0855b02ac 100644 --- a/library/psa_crypto.c +++ b/library/psa_crypto.c @@ -5147,7 +5147,7 @@ static psa_status_t psa_generate_derived_key_internal( status = psa_allocate_buffer_to_slot( slot, bytes ); if( status != PSA_SUCCESS ) - return( status ); + goto exit; slot->attr.bits = (psa_key_bits_t) bits; psa_key_attributes_t attributes = {