Fixed asan error (use after poison)

This commit is contained in:
SChernykh
2025-08-01 13:45:29 +02:00
parent a977f988d5
commit b1348b6c80
2 changed files with 6 additions and 3 deletions

View File

@@ -891,13 +891,13 @@ MergeMiningClientTari::TariClient::TariClient()
m_buf[0] = '\0';
}
void MergeMiningClientTari::TariClient::reset()
void MergeMiningClientTari::TariClient::break_pairing()
{
if (is_paired()) {
m_pairedClient->m_pairedClient = nullptr;
m_pairedClient->close();
m_pairedClient = nullptr;
}
m_pairedClient = nullptr;
m_pairedClientSavedResetCounter = std::numeric_limits<uint32_t>::max();
}

View File

@@ -113,15 +113,18 @@ private:
static Client* allocate() { return new TariClient(); }
virtual size_t size() const override { return sizeof(TariClient); }
void reset() override;
void reset() override { break_pairing(); }
[[nodiscard]] bool on_connect() override;
[[nodiscard]] bool on_read(const char* data, uint32_t size) override;
void on_disconnected() override { break_pairing(); }
alignas(8) char m_buf[BUF_SIZE];
std::vector<uint8_t> m_pendingData;
bool is_paired() const { return m_pairedClient && (m_pairedClient->m_resetCounter == m_pairedClientSavedResetCounter); }
void break_pairing();
TariClient* m_pairedClient;
uint32_t m_pairedClientSavedResetCounter;
};