ECDH: Fix memory leaks due to context re-initialization

This commit is contained in:
Christoph M. Wintersteiger 2019-02-18 13:06:02 +00:00 коммит произвёл Janos Follath
Родитель 2be66d44a5
Коммит 2f563e3482
1 изменённых файлов: 7 добавлений и 0 удалений

Просмотреть файл

@ -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
}