Don't bother to free NULL subcontexts
diff --git a/library/ecp.c b/library/ecp.c
index a8c367a..0c9feae 100644
--- a/library/ecp.c
+++ b/library/ecp.c
@@ -1989,7 +1989,8 @@
/* clear our sub-context when not in progress (done or error) */
#if defined(MBEDTLS_ECP_RESTARTABLE)
- if( rs_ctx != NULL && ret != MBEDTLS_ERR_ECP_IN_PROGRESS )
+ if( rs_ctx != NULL && rs_ctx->rsm != NULL &&
+ ret != MBEDTLS_ERR_ECP_IN_PROGRESS )
{
ecp_restart_mul_free( rs_ctx->rsm );
mbedtls_free( rs_ctx->rsm );
@@ -2457,7 +2458,8 @@
#if defined(MBEDTLS_ECP_RESTARTABLE)
/* clear our sub-context when not in progress (done or error) */
- if( rs_ctx != NULL && ret != MBEDTLS_ERR_ECP_IN_PROGRESS )
+ if( rs_ctx != NULL && rs_ctx->ma != NULL &&
+ ret != MBEDTLS_ERR_ECP_IN_PROGRESS )
{
ecp_restart_muladd_free( rs_ctx->ma );
mbedtls_free( rs_ctx->ma );