From b72b4edec1f742a42962e25cda9414d2d15b471a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Fri, 13 Sep 2013 13:55:26 +0200 Subject: [PATCH] Fix memory leak in DHM --- library/dhm.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/library/dhm.c b/library/dhm.c index b95f89958..f43b047c3 100644 --- a/library/dhm.c +++ b/library/dhm.c @@ -98,7 +98,7 @@ int dhm_read_params( dhm_context *ctx, { int ret; - memset( ctx, 0, sizeof( dhm_context ) ); + dhm_free( ctx ); if( ( ret = dhm_read_bignum( &ctx->P, p, end ) ) != 0 || ( ret = dhm_read_bignum( &ctx->G, p, end ) ) != 0 || @@ -364,10 +364,12 @@ cleanup: */ void dhm_free( dhm_context *ctx ) { - mpi_free( &ctx->Vi ); mpi_free( &ctx->Vf ); + mpi_free( &ctx->_X); mpi_free( &ctx->Vf ); mpi_free( &ctx->Vi ); mpi_free( &ctx->RP ); mpi_free( &ctx->K ); mpi_free( &ctx->GY ); mpi_free( &ctx->GX ); mpi_free( &ctx->X ); mpi_free( &ctx->G ); mpi_free( &ctx->P ); + + memset( ctx, 0, sizeof( dhm_context ) ); } #if defined(POLARSSL_SELF_TEST)