diff options
| author | Fabio Alessandrelli <fabio.alessandrelli@gmail.com> | 2021-07-03 16:12:55 +0200 | 
|---|---|---|
| committer | Fabio Alessandrelli <fabio.alessandrelli@gmail.com> | 2021-07-03 16:12:55 +0200 | 
| commit | a28d25c44181ded80c80f7ae18ea75ce28e00eec (patch) | |
| tree | e97559b86ec47b988a9d7c9802399f5588af1865 /modules/mbedtls | |
| parent | a525e7774006a7439779c7b1bd64ed0f2ccf6385 (diff) | |
[Crypto] Delete mbedtls ctx in deconstructor.
Would cause memory leak when the context was `start`ed but not
`finish`ed.
Diffstat (limited to 'modules/mbedtls')
| -rw-r--r-- | modules/mbedtls/crypto_mbedtls.cpp | 7 | ||||
| -rw-r--r-- | modules/mbedtls/crypto_mbedtls.h | 1 | 
2 files changed, 8 insertions, 0 deletions
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 {  |