From a48cf500d7fd8e4a4c8099cbba6738bf1b061868 Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Tue, 31 Jan 2023 20:03:57 +0100 Subject: [PATCH] mbedtls_test_transparent_pake_abort: call driver/build-in impl even when status is forced This is done to solve the problem with memory leak when pake abort status is forced. In this case the driver/build-in abort function was not executed. After failure core clears the operation object and no successive abort call is possible. Signed-off-by: Przemek Stekiel --- tests/src/drivers/test_driver_pake.c | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/tests/src/drivers/test_driver_pake.c b/tests/src/drivers/test_driver_pake.c index e0be17dd05..9d51ea10b7 100644 --- a/tests/src/drivers/test_driver_pake.c +++ b/tests/src/drivers/test_driver_pake.c @@ -177,25 +177,28 @@ psa_status_t mbedtls_test_transparent_pake_abort( { mbedtls_test_driver_pake_hooks.hits++; - if (mbedtls_test_driver_pake_hooks.forced_status != PSA_SUCCESS) { - mbedtls_test_driver_pake_hooks.driver_status = - mbedtls_test_driver_pake_hooks.forced_status; - } else { #if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_PAKE) - mbedtls_test_driver_pake_hooks.driver_status = - libtestdriver1_mbedtls_psa_pake_abort( - operation); + mbedtls_test_driver_pake_hooks.driver_status = + libtestdriver1_mbedtls_psa_pake_abort( + operation); #elif defined(MBEDTLS_PSA_BUILTIN_PAKE) - mbedtls_test_driver_pake_hooks.driver_status = - mbedtls_psa_pake_abort( - operation); + mbedtls_test_driver_pake_hooks.driver_status = + mbedtls_psa_pake_abort( + operation); #else - (void) operation; - mbedtls_test_driver_pake_hooks.driver_status = PSA_ERROR_NOT_SUPPORTED; + (void) operation; + mbedtls_test_driver_pake_hooks.driver_status = PSA_ERROR_NOT_SUPPORTED; #endif + + + if (mbedtls_test_driver_pake_hooks.forced_status != PSA_SUCCESS && + mbedtls_test_driver_pake_hooks.driver_status == PSA_SUCCESS) { + mbedtls_test_driver_pake_hooks.driver_status = + mbedtls_test_driver_pake_hooks.forced_status; } + return mbedtls_test_driver_pake_hooks.driver_status; }