From 2f563e3482460c237e19e931ed2e5bfb7ac49b81 Mon Sep 17 00:00:00 2001 From: "Christoph M. Wintersteiger" Date: Mon, 18 Feb 2019 13:06:02 +0000 Subject: [PATCH] ECDH: Fix memory leaks due to context re-initialization --- library/ecdh.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/library/ecdh.c b/library/ecdh.c index f1609bde0..9c4ddce9c 100644 --- a/library/ecdh.c +++ b/library/ecdh.c @@ -162,6 +162,12 @@ int mbedtls_ecdh_compute_shared( mbedtls_ecp_group *grp, mbedtls_mpi *z, static void ecdh_init_internal( mbedtls_ecdh_context_mbed *ctx ) { + mbedtls_ecp_group_free( &ctx->grp ); + mbedtls_mpi_free( &ctx->d ); + mbedtls_ecp_point_free( &ctx->Q ); + mbedtls_ecp_point_free( &ctx->Qp ); + mbedtls_mpi_free( &ctx->z ); + mbedtls_ecp_group_init( &ctx->grp ); mbedtls_mpi_init( &ctx->d ); mbedtls_ecp_point_init( &ctx->Q ); @@ -169,6 +175,7 @@ static void ecdh_init_internal( mbedtls_ecdh_context_mbed *ctx ) mbedtls_mpi_init( &ctx->z ); #if defined(MBEDTLS_ECP_RESTARTABLE) + mbedtls_ecp_restart_free( &ctx->rs ); mbedtls_ecp_restart_init( &ctx->rs ); #endif }