core: Fix memory leaks in sm2 of Mbedtls lib

When enable mbedtls in optee-os , xtest run twice will be fail.
Memory leakage exists in three functions.
1. grp and mpi in sm2_mbedtls_pke_encrypt
2. grp in sm2_mbedtls_dsa_sign
3. grp in sm2_mbedtls_dsa_verify

Fixes: c84eee6397bb ("core: add support for SM2 using MBed TLS")
Reviewed-by: Jerome Forissier <jerome@forissier.org>
Signed-off-by: lubing <lubing@eswin.com>
[jf: cherry-pick commit c04a96a45ffe from master]
Signed-off-by: Jerome Forissier <jerome@forissier.org>
diff --git a/lib/libmbedtls/core/sm2-dsa.c b/lib/libmbedtls/core/sm2-dsa.c
index 4db1de7..6e6e1d3 100644
--- a/lib/libmbedtls/core/sm2-dsa.c
+++ b/lib/libmbedtls/core/sm2-dsa.c
@@ -139,6 +139,7 @@
 	mbedtls_mpi_free(&r);
 	mbedtls_mpi_free(&s);
 	mbedtls_mpi_free(&tmp);
+	mbedtls_ecp_group_free(&grp);
 	return res;
 }
 
@@ -262,5 +263,6 @@
 	mbedtls_mpi_free(&t);
 	mbedtls_mpi_free(&eprime);
 	mbedtls_mpi_free(&R);
+	mbedtls_ecp_group_free(&grp);
 	return res;
 }
diff --git a/lib/libmbedtls/core/sm2-pke.c b/lib/libmbedtls/core/sm2-pke.c
index 45786e8..e1c3d23 100644
--- a/lib/libmbedtls/core/sm2-pke.c
+++ b/lib/libmbedtls/core/sm2-pke.c
@@ -446,5 +446,7 @@
 	mbedtls_ecp_point_free(&x2y2p);
 	mbedtls_ecp_point_free(&PB);
 	mbedtls_ecp_point_free(&C1);
+	mbedtls_ecp_group_free(&grp);
+	mbedtls_mpi_free(&k);
 	return res;
 }