Fix memory corruption.

This commit is contained in:
Jonathan Naylor 2021-08-24 18:46:27 +01:00
parent 93df9aa867
commit 2b351f0357

View File

@ -228,7 +228,7 @@ void CNXDNReflector::run()
enum {
ACTIVE_NONE,
ACTIVE_YSF,
ACTIVE_NXDN,
ACTIVE_ICOM,
ACTIVE_KENWOOD
} active = ACTIVE_NONE;
@ -340,10 +340,10 @@ void CNXDNReflector::run()
std::string callsign = lookup->find(srcId);
LogMessage("Transmission from %s at %s to %s%u", callsign.c_str(), current->m_callsign.c_str(), grp ? "TG " : "", dstId);
active = ACTIVE_YSF;
active = ACTIVE_NXDN;
}
if (active == ACTIVE_YSF) {
if (active == ACTIVE_NXDN) {
watchdogTimer.start();
for (std::vector<CNXDNRepeater*>::const_iterator it = m_repeaters.begin(); it != m_repeaters.end(); ++it) {
@ -515,8 +515,8 @@ void CNXDNReflector::run()
LogMessage("Removing %s (%s) disappeared", (*it)->m_callsign.c_str(),
CUDPSocket::display((*it)->m_addr, buff, 80U));
m_repeaters.erase(it);
delete *it;
m_repeaters.erase(it);
break;
}
}