From 5d736f7eca485f81ff5eb9eb05d44f98f6e470cc Mon Sep 17 00:00:00 2001 From: Angus Gratton Date: Wed, 12 Jul 2017 16:34:26 +0800 Subject: [PATCH] mbedtls: Fix memory leak in initial ECDH exchange if OOM/failure occurs In ecp_mul_comb(), if (!p_eq_g && grp->T == NULL) and ecp_precompute_comb() fails (which can happen due to OOM), then the new array of points T was leaked. --- components/mbedtls/library/ecp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/mbedtls/library/ecp.c b/components/mbedtls/library/ecp.c index f51f2251e..fa5d0ddc1 100644 --- a/components/mbedtls/library/ecp.c +++ b/components/mbedtls/library/ecp.c @@ -1406,7 +1406,7 @@ static int ecp_mul_comb( mbedtls_ecp_group *grp, mbedtls_ecp_point *R, cleanup: - if( T != NULL && ! p_eq_g ) + if( T != NULL && T != grp->T ) { for( i = 0; i < pre_len; i++ ) mbedtls_ecp_point_free( &T[i] );