[Crypto] Delete mbedtls ctx in deconstructor.

Would cause memory leak when the context was `start`ed but not
`finish`ed.
This commit is contained in:
Fabio Alessandrelli 2021-07-03 16:12:55 +02:00
parent a525e77740
commit a28d25c441
3 changed files with 9 additions and 0 deletions

View file

@ -82,6 +82,7 @@ public:
virtual PackedByteArray finish() = 0;
HMACContext() {}
virtual ~HMACContext() {}
};
class Crypto : public RefCounted {

View file

@ -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);
}

View file

@ -119,6 +119,7 @@ public:
virtual PackedByteArray finish();
HMACContextMbedTLS() {}
~HMACContextMbedTLS();
};
class CryptoMbedTLS : public Crypto {