Try and fix a crash.
This commit is contained in:
parent
75e8e95aad
commit
d0ccc0ee61
|
@ -25,7 +25,7 @@
|
||||||
#include <cassert>
|
#include <cassert>
|
||||||
#include <cstring>
|
#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) :
|
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),
|
m_protocol(FMNP_MMDVM),
|
||||||
|
@ -111,8 +111,8 @@ bool CFMNetwork::writeData(float* data, unsigned int nSamples)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
unsigned char buffer[2000U];
|
unsigned char buffer[1500U];
|
||||||
::memset(buffer, 0x00U, 2000U);
|
::memset(buffer, 0x00U, 1500U);
|
||||||
|
|
||||||
unsigned int length = 0U;
|
unsigned int length = 0U;
|
||||||
|
|
||||||
|
@ -237,6 +237,9 @@ void CFMNetwork::clock(unsigned int ms)
|
||||||
if (::memcmp(buffer, "USRP", 4U) != 0)
|
if (::memcmp(buffer, "USRP", 4U) != 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
if (length < 32)
|
||||||
|
return;
|
||||||
|
|
||||||
// The type is a big-endian 4-byte integer
|
// The type is a big-endian 4-byte integer
|
||||||
unsigned int type = (buffer[20U] << 24) +
|
unsigned int type = (buffer[20U] << 24) +
|
||||||
(buffer[21U] << 16) +
|
(buffer[21U] << 16) +
|
||||||
|
@ -254,6 +257,9 @@ void CFMNetwork::clock(unsigned int ms)
|
||||||
if (::memcmp(buffer, "FMD", 3U) != 0)
|
if (::memcmp(buffer, "FMD", 3U) != 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
if (length < 3)
|
||||||
|
return;
|
||||||
|
|
||||||
m_buffer.addData(buffer + 3U, length - 3U);
|
m_buffer.addData(buffer + 3U, length - 3U);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue