fix various valgrind reports;

pull/63/head
Bryan Biedenkapp 2 years ago
parent 22d13e4c77
commit 47d89febdf

@ -134,7 +134,7 @@ bool FrameQueue::write(const uint8_t* message, uint32_t length, uint32_t streamI
ret = false; ret = false;
} }
delete buffer; delete[] buffer;
return ret; return ret;
} }

@ -162,7 +162,7 @@ void RawFrameQueue::deleteBuffers()
if (buffer != nullptr) { if (buffer != nullptr) {
// LogDebug(LOG_NET, "deleting buffer, addr %p len %u", buffer->buffer, buffer->length); // LogDebug(LOG_NET, "deleting buffer, addr %p len %u", buffer->buffer, buffer->length);
if (buffer->buffer != nullptr) { if (buffer->buffer != nullptr) {
delete buffer->buffer; delete[] buffer->buffer;
buffer->length = 0; buffer->length = 0;
buffer->buffer = nullptr; buffer->buffer = nullptr;
} }

@ -58,7 +58,12 @@ LC::LC(const LC& data) : LC()
LC::LC(const lc::LC& control, const data::LowSpeedData& lsd) : LC() LC::LC(const lc::LC& control, const data::LowSpeedData& lsd) : LC()
{ {
if (m_control != nullptr)
delete m_control;
m_control = new lc::LC(control); m_control = new lc::LC(control);
if (m_lsd != nullptr)
delete m_lsd;
m_lsd = new data::LowSpeedData(lsd); m_lsd = new data::LowSpeedData(lsd);
} }
@ -66,16 +71,13 @@ LC::LC(const lc::LC& control, const data::LowSpeedData& lsd) : LC()
LC::~LC() LC::~LC()
{ {
if (m_control != nullptr) { if (m_control != nullptr)
delete m_control; delete m_control;
} if (m_lsd != nullptr)
if (m_lsd != nullptr) {
delete m_lsd; delete m_lsd;
}
delete[] m_mi; delete[] m_mi;
if (m_rsBuffer != nullptr) { if (m_rsBuffer != nullptr)
delete[] m_rsBuffer; delete[] m_rsBuffer;
}
} }
/* Equals operator. */ /* Equals operator. */
@ -113,18 +115,16 @@ bool LC::decodeLDU1(const uint8_t* data, uint8_t* imbe)
{ {
case DFSIFrameType::LDU1_VOICE1: case DFSIFrameType::LDU1_VOICE1:
{ {
if (m_control != nullptr) { if (m_control != nullptr)
delete m_control; delete m_control;
}
m_control = new lc::LC(); m_control = new lc::LC();
if (m_lsd != nullptr) { if (m_lsd != nullptr)
delete m_lsd;
m_lsd = new data::LowSpeedData(); m_lsd = new data::LowSpeedData();
}
if (m_rsBuffer != nullptr) { if (m_rsBuffer != nullptr)
delete m_rsBuffer; delete[] m_rsBuffer;
}
m_rsBuffer = new uint8_t[P25_LDU_LC_FEC_LENGTH_BYTES]; m_rsBuffer = new uint8_t[P25_LDU_LC_FEC_LENGTH_BYTES];
::memset(m_rsBuffer, 0x00U, P25_LDU_LC_FEC_LENGTH_BYTES); ::memset(m_rsBuffer, 0x00U, P25_LDU_LC_FEC_LENGTH_BYTES);
@ -424,9 +424,8 @@ bool LC::decodeLDU2(const uint8_t* data, uint8_t* imbe)
case DFSIFrameType::LDU2_VOICE10: case DFSIFrameType::LDU2_VOICE10:
{ {
::memset(m_mi, 0x00U, MI_LENGTH_BYTES); ::memset(m_mi, 0x00U, MI_LENGTH_BYTES);
if (m_lsd != nullptr) { if (m_lsd != nullptr)
delete m_lsd; delete m_lsd;
}
m_lsd = new data::LowSpeedData(); m_lsd = new data::LowSpeedData();
m_rssi = data[6U]; // RSSI m_rssi = data[6U]; // RSSI
@ -661,7 +660,11 @@ void LC::copy(const LC& data)
m_rssi = data.m_rssi; m_rssi = data.m_rssi;
if (m_control != nullptr)
delete m_control;
m_control = new lc::LC(*data.m_control); m_control = new lc::LC(*data.m_control);
if (m_lsd != nullptr)
delete m_lsd;
m_lsd = new data::LowSpeedData(*data.m_lsd); m_lsd = new data::LowSpeedData(*data.m_lsd);
delete[] m_mi; delete[] m_mi;

@ -360,6 +360,8 @@ bool LC::decodeLDU2(const uint8_t* data)
m_algId = rs[9U]; // Algorithm ID m_algId = rs[9U]; // Algorithm ID
if (m_algId != ALGO_UNENCRYPT) { if (m_algId != ALGO_UNENCRYPT) {
if (m_mi != nullptr)
delete[] m_mi;
m_mi = new uint8_t[MI_LENGTH_BYTES]; m_mi = new uint8_t[MI_LENGTH_BYTES];
::memset(m_mi, 0x00U, MI_LENGTH_BYTES); ::memset(m_mi, 0x00U, MI_LENGTH_BYTES);
::memcpy(m_mi, rs, MI_LENGTH_BYTES); // Message Indicator ::memcpy(m_mi, rs, MI_LENGTH_BYTES); // Message Indicator
@ -371,6 +373,8 @@ bool LC::decodeLDU2(const uint8_t* data)
} }
} }
else { else {
if (m_mi != nullptr)
delete[] m_mi;
m_mi = new uint8_t[MI_LENGTH_BYTES]; m_mi = new uint8_t[MI_LENGTH_BYTES];
::memset(m_mi, 0x00U, MI_LENGTH_BYTES); ::memset(m_mi, 0x00U, MI_LENGTH_BYTES);

@ -84,6 +84,7 @@ void DiagNetwork::processNetwork()
::memcpy(req->buffer, buffer.get(), length); ::memcpy(req->buffer, buffer.get(), length);
if (!Thread::runAsThread(m_fneNetwork, threadedNetworkRx, req)) { if (!Thread::runAsThread(m_fneNetwork, threadedNetworkRx, req)) {
delete[] req->buffer;
delete req; delete req;
return; return;
} }
@ -310,7 +311,7 @@ void* DiagNetwork::threadedNetworkRx(void* arg)
} }
if (req->buffer != nullptr) if (req->buffer != nullptr)
delete req->buffer; delete[] req->buffer;
delete req; delete req;
} }

@ -241,6 +241,7 @@ void FNENetwork::processNetwork()
::memcpy(req->buffer, buffer.get(), length); ::memcpy(req->buffer, buffer.get(), length);
if (!Thread::runAsThread(this, threadedNetworkRx, req)) { if (!Thread::runAsThread(this, threadedNetworkRx, req)) {
delete[] req->buffer;
delete req; delete req;
return; return;
} }
@ -1170,7 +1171,7 @@ void* FNENetwork::threadedNetworkRx(void* arg)
} }
if (req->buffer != nullptr) if (req->buffer != nullptr)
delete req->buffer; delete[] req->buffer;
delete req; delete req;
} }

@ -50,7 +50,10 @@ TagDMRData::TagDMRData(FNENetwork* network, bool debug) :
/* Finalizes a instance of the TagDMRData class. */ /* Finalizes a instance of the TagDMRData class. */
TagDMRData::~TagDMRData() = default; TagDMRData::~TagDMRData()
{
delete m_packetData;
}
/* Process a data frame from the network. */ /* Process a data frame from the network. */
@ -203,7 +206,7 @@ bool TagDMRData::processFrame(const uint8_t* data, uint32_t len, uint32_t peerId
if (m_parrotFrames.size() > 0) { if (m_parrotFrames.size() > 0) {
for (auto& pkt : m_parrotFrames) { for (auto& pkt : m_parrotFrames) {
if (pkt.buffer != nullptr) { if (pkt.buffer != nullptr) {
delete pkt.buffer; delete[] pkt.buffer;
} }
} }
m_parrotFrames.clear(); m_parrotFrames.clear();
@ -410,7 +413,7 @@ void TagDMRData::playbackParrot()
} }
} }
delete pkt.buffer; delete[] pkt.buffer;
} }
Thread::sleep(60); Thread::sleep(60);
m_parrotFrames.pop_front(); m_parrotFrames.pop_front();

@ -166,7 +166,7 @@ bool TagNXDNData::processFrame(const uint8_t* data, uint32_t len, uint32_t peerI
if (m_parrotFrames.size() > 0) { if (m_parrotFrames.size() > 0) {
for (auto& pkt : m_parrotFrames) { for (auto& pkt : m_parrotFrames) {
if (pkt.buffer != nullptr) { if (pkt.buffer != nullptr) {
delete pkt.buffer; delete[] pkt.buffer;
} }
} }
m_parrotFrames.clear(); m_parrotFrames.clear();
@ -366,7 +366,7 @@ void TagNXDNData::playbackParrot()
} }
} }
delete pkt.buffer; delete[] pkt.buffer;
} }
Thread::sleep(60); Thread::sleep(60);
m_parrotFrames.pop_front(); m_parrotFrames.pop_front();

@ -237,7 +237,7 @@ bool TagP25Data::processFrame(const uint8_t* data, uint32_t len, uint32_t peerId
if (m_parrotFrames.size() > 0) { if (m_parrotFrames.size() > 0) {
for (auto& pkt : m_parrotFrames) { for (auto& pkt : m_parrotFrames) {
if (pkt.buffer != nullptr) { if (pkt.buffer != nullptr) {
delete pkt.buffer; delete[] pkt.buffer;
} }
} }
m_parrotFrames.clear(); m_parrotFrames.clear();
@ -492,7 +492,7 @@ void TagP25Data::playbackParrot()
} }
} }
delete pkt.buffer; delete[] pkt.buffer;
} }
Thread::sleep(180); Thread::sleep(180);
m_parrotFrames.pop_front(); m_parrotFrames.pop_front();

@ -161,6 +161,13 @@ Control::~Control()
if (m_data != nullptr) { if (m_data != nullptr) {
delete m_data; delete m_data;
} }
if (m_llaK != nullptr) {
delete[] m_llaK;
}
delete[] m_llaRS;
delete[] m_llaCRS;
delete[] m_llaKS;
} }
/* Resets the data states for the RF interface. */ /* Resets the data states for the RF interface. */

Loading…
Cancel
Save

Powered by TurnKey Linux.