Fix for memory leak in RSA-SSA signing
Fix in mbedtls_rsa_rsassa_pkcs1_v15_sign() in rsa.c
diff --git a/library/rsa.c b/library/rsa.c
index 1f907b7..efdd055 100644
--- a/library/rsa.c
+++ b/library/rsa.c
@@ -1086,10 +1086,16 @@
* temporary buffer and check it before returning it.
*/
sig_try = mbedtls_calloc( 1, ctx->len );
- verif = mbedtls_calloc( 1, ctx->len );
- if( sig_try == NULL || verif == NULL )
+ if( sig_try == NULL )
return( MBEDTLS_ERR_MPI_ALLOC_FAILED );
+ verif = mbedtls_calloc( 1, ctx->len );
+ if( verif == NULL )
+ {
+ mbedtls_free( sig_try );
+ return( MBEDTLS_ERR_MPI_ALLOC_FAILED );
+ }
+
MBEDTLS_MPI_CHK( mbedtls_rsa_private( ctx, f_rng, p_rng, sig, sig_try ) );
MBEDTLS_MPI_CHK( mbedtls_rsa_public( ctx, sig_try, verif ) );