Try and fix a crash.

This commit is contained in:
Jonathan Naylor 2021-03-14 16:24:48 +00:00
parent 75e8e95aad
commit d0ccc0ee61
2 changed files with 10 additions and 4 deletions

View file

@ -147,7 +147,7 @@ unsigned int CFMControl::readModem(unsigned char* data, unsigned int space)
space = 240U; // 160 samples 12-bit
float netData[160U]; // Modem can handle up to 160 samples at a time
unsigned int length = m_network->read(netData, 160U); //160 samples 12-bit
unsigned int length = m_network->read(netData, 160U); // 160 samples 12-bit
if (length == 0U)
return 0U;

View file

@ -25,7 +25,7 @@
#include <cassert>
#include <cstring>
const unsigned int BUFFER_LENGTH = 500U;
const unsigned int BUFFER_LENGTH = 1500U;
CFMNetwork::CFMNetwork(const std::string& protocol, const std::string& localAddress, unsigned int localPort, const std::string& gatewayAddress, unsigned int gatewayPort, unsigned int sampleRate, bool debug) :
m_protocol(FMNP_MMDVM),
@ -111,8 +111,8 @@ bool CFMNetwork::writeData(float* data, unsigned int nSamples)
}
#endif
unsigned char buffer[2000U];
::memset(buffer, 0x00U, 2000U);
unsigned char buffer[1500U];
::memset(buffer, 0x00U, 1500U);
unsigned int length = 0U;
@ -237,6 +237,9 @@ void CFMNetwork::clock(unsigned int ms)
if (::memcmp(buffer, "USRP", 4U) != 0)
return;
if (length < 32)
return;
// The type is a big-endian 4-byte integer
unsigned int type = (buffer[20U] << 24) +
(buffer[21U] << 16) +
@ -254,6 +257,9 @@ void CFMNetwork::clock(unsigned int ms)
if (::memcmp(buffer, "FMD", 3U) != 0)
return;
if (length < 3)
return;
m_buffer.addData(buffer + 3U, length - 3U);
}
}