diff options
author | Cedric Neveux <cedric.neveux@nxp.com> | 2020-11-02 16:40:12 +0100 |
---|---|---|
committer | Jérôme Forissier <jerome@forissier.org> | 2020-11-16 11:20:30 +0100 |
commit | 685d1524a26d01490cc1a20d1a78f23ce985a80a (patch) | |
tree | 6cbd08143d2251dd4d0270cf28b7161ac28254c9 | |
parent | d29cd2efcd4681766ec3e3ffe4f5056fd4fc14ea (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.c | 6 |
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) { |