diff options
author | Rémi Verschelde <remi@verschelde.fr> | 2021-07-03 20:15:30 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-07-03 20:15:30 +0200 |
commit | af1543ded5579fec6c8573d1343af2329e5c55ac (patch) | |
tree | e11a6f2fa33920a9f4d345916bb3e70d23ee791c | |
parent | e849dc1791cd064b3b9736ac91f0ae9fae3bc8d9 (diff) | |
parent | a28d25c44181ded80c80f7ae18ea75ce28e00eec (diff) |
Merge pull request #50128 from Faless/mbedtls/hmac_free
[Crypto] Delete mbedtls ctx in deconstructor.
-rw-r--r-- | core/crypto/crypto.h | 1 | ||||
-rw-r--r-- | modules/mbedtls/crypto_mbedtls.cpp | 7 | ||||
-rw-r--r-- | modules/mbedtls/crypto_mbedtls.h | 1 |
3 files changed, 9 insertions, 0 deletions
diff --git a/core/crypto/crypto.h b/core/crypto/crypto.h index a2ccbba58a..a46f42949d 100644 --- a/core/crypto/crypto.h +++ b/core/crypto/crypto.h @@ -82,6 +82,7 @@ public: virtual PackedByteArray finish() = 0; HMACContext() {} + virtual ~HMACContext() {} }; class Crypto : public RefCounted { diff --git a/modules/mbedtls/crypto_mbedtls.cpp b/modules/mbedtls/crypto_mbedtls.cpp index 774da5a324..2522f1bb11 100644 --- a/modules/mbedtls/crypto_mbedtls.cpp +++ b/modules/mbedtls/crypto_mbedtls.cpp @@ -249,6 +249,13 @@ PackedByteArray HMACContextMbedTLS::finish() { return out; } +HMACContextMbedTLS::~HMACContextMbedTLS() { + if (ctx != nullptr) { + mbedtls_md_free((mbedtls_md_context_t *)ctx); + memfree((mbedtls_md_context_t *)ctx); + } +} + Crypto *CryptoMbedTLS::create() { return memnew(CryptoMbedTLS); } diff --git a/modules/mbedtls/crypto_mbedtls.h b/modules/mbedtls/crypto_mbedtls.h index 5ced4d136c..afa1ea7a64 100644 --- a/modules/mbedtls/crypto_mbedtls.h +++ b/modules/mbedtls/crypto_mbedtls.h @@ -119,6 +119,7 @@ public: virtual PackedByteArray finish(); HMACContextMbedTLS() {} + ~HMACContextMbedTLS(); }; class CryptoMbedTLS : public Crypto { |