From 4374454783570fe3bea1c150ef56eba8ebe83421 Mon Sep 17 00:00:00 2001 From: Miguel Estrada Date: Sun, 22 Aug 2021 23:52:37 -0400 Subject: [PATCH] Delete correct rpt iterator is changed by erase vector function thus we were deleting incorrect rpt from vector and leaving memory unstable... --- P25Reflector/P25Reflector.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/P25Reflector/P25Reflector.cpp b/P25Reflector/P25Reflector.cpp index bb5b571..62783e3 100644 --- a/P25Reflector/P25Reflector.cpp +++ b/P25Reflector/P25Reflector.cpp @@ -233,8 +233,8 @@ void CP25Reflector::run() for (std::vector::iterator it = m_repeaters.begin(); it != m_repeaters.end(); ++it) { if (CUDPSocket::match((*it)->m_addr, rpt->m_addr)) { - m_repeaters.erase(it); delete *it; + m_repeaters.erase(it); break; } } @@ -304,8 +304,8 @@ void CP25Reflector::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; } }