summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCedric Neveux <cedric.neveux@nxp.com>2020-11-02 16:40:12 +0100
committerJérôme Forissier <jerome@forissier.org>2020-11-16 11:20:30 +0100
commit685d1524a26d01490cc1a20d1a78f23ce985a80a (patch)
tree6cbd08143d2251dd4d0270cf28b7161ac28254c9
parentd29cd2efcd4681766ec3e3ffe4f5056fd4fc14ea (diff)
core: ltc: fix SM2 PKE memory leak
In function `sm2_ltc_pke_decrypt`, the ecc_point `S` was not deleted if the following bignumber `h` initialization failed. Fixes: f9a78287dd1 (core: ltc: add support for SM2 PKE) Signed-off-by: Cedric Neveux <cedric.neveux@nxp.com> Acked-by: Etienne Carriere <etienne.carriere@linaro.org> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
-rw-r--r--core/lib/libtomcrypt/sm2-pke.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/core/lib/libtomcrypt/sm2-pke.c b/core/lib/libtomcrypt/sm2-pke.c
index 035ea5e8..9d1d8958 100644
--- a/core/lib/libtomcrypt/sm2-pke.c
+++ b/core/lib/libtomcrypt/sm2-pke.c
@@ -159,8 +159,10 @@ TEE_Result sm2_ltc_pke_decrypt(struct ecc_keypair *key, const uint8_t *src,
}
ltc_res = mp_init_multi(&h, NULL);
- if (ltc_res != CRYPT_OK)
- return TEE_ERROR_OUT_OF_MEMORY;
+ if (ltc_res != CRYPT_OK) {
+ res = TEE_ERROR_OUT_OF_MEMORY;
+ goto out;
+ }
ltc_res = mp_set_int(h, ltc_key.dp.cofactor);
if (ltc_res != CRYPT_OK) {