Fix various memory leaks

This commit is contained in:
Tony Butler 2021-10-24 23:22:58 -06:00
parent f8f73b0cd7
commit f6d45f7990
5 changed files with 19 additions and 1 deletions

View file

@ -28,13 +28,19 @@
namespace xmrig { namespace xmrig {
static Storage<DnsUvBackend>* storage = nullptr;
Storage<DnsUvBackend>& DnsUvBackend::getStorage() Storage<DnsUvBackend>& DnsUvBackend::getStorage()
{ {
static Storage<DnsUvBackend>* storage = new Storage<DnsUvBackend>(); if (storage == nullptr) storage = new Storage<DnsUvBackend>();
return *storage; return *storage;
} }
void DnsUvBackend::releaseStorage()
{
delete storage;
}
static addrinfo hints{}; static addrinfo hints{};
@ -56,6 +62,7 @@ xmrig::DnsUvBackend::DnsUvBackend()
xmrig::DnsUvBackend::~DnsUvBackend() xmrig::DnsUvBackend::~DnsUvBackend()
{ {
getStorage().release(m_key); getStorage().release(m_key);
releaseStorage();
} }

View file

@ -62,6 +62,7 @@ private:
uintptr_t m_key; uintptr_t m_key;
static Storage<DnsUvBackend>& getStorage(); static Storage<DnsUvBackend>& getStorage();
void releaseStorage();
}; };

View file

@ -316,6 +316,14 @@ xmrig::CnHash::CnHash()
} }
xmrig::CnHash::~CnHash()
{
for (auto const& x : m_map) {
delete m_map[x.first];
}
}
xmrig::cn_hash_fun xmrig::CnHash::fn(const Algorithm &algorithm, AlgoVariant av, Assembly::Id assembly) xmrig::cn_hash_fun xmrig::CnHash::fn(const Algorithm &algorithm, AlgoVariant av, Assembly::Id assembly)
{ {
assert(cnHash.m_map.count(algorithm)); assert(cnHash.m_map.count(algorithm));

View file

@ -59,6 +59,7 @@ public:
}; };
CnHash(); CnHash();
virtual ~CnHash();
static cn_hash_fun fn(const Algorithm &algorithm, AlgoVariant av, Assembly::Id assembly); static cn_hash_fun fn(const Algorithm &algorithm, AlgoVariant av, Assembly::Id assembly);

View file

@ -410,6 +410,7 @@ extern "C" {
} }
void randomx_release_cache(randomx_cache* cache) { void randomx_release_cache(randomx_cache* cache) {
delete cache->jit;
delete cache; delete cache;
} }