summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRémi Verschelde <remi@verschelde.fr>2021-07-03 20:15:30 +0200
committerGitHub <noreply@github.com>2021-07-03 20:15:30 +0200
commitaf1543ded5579fec6c8573d1343af2329e5c55ac (patch)
treee11a6f2fa33920a9f4d345916bb3e70d23ee791c
parente849dc1791cd064b3b9736ac91f0ae9fae3bc8d9 (diff)
parenta28d25c44181ded80c80f7ae18ea75ce28e00eec (diff)
Merge pull request #50128 from Faless/mbedtls/hmac_free
[Crypto] Delete mbedtls ctx in deconstructor.
-rw-r--r--core/crypto/crypto.h1
-rw-r--r--modules/mbedtls/crypto_mbedtls.cpp7
-rw-r--r--modules/mbedtls/crypto_mbedtls.h1
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 {