Merge pull request #142 from BeigeBox/fix/heap-overflow-dmrg-dmra

Fix heap buffer overflow on DMRG/DMRA packets
This commit is contained in:
Jonathan Naylor 2026-04-05 16:24:12 +01:00 committed by GitHub
commit 8725e06978
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -276,11 +276,15 @@ void CMMDVMNetwork::clock(unsigned int ms)
m_rxData.addData(&len, 1U);
m_rxData.addData(m_buffer, len);
} else if (::memcmp(m_buffer, "DMRG", 4U) == 0) {
::memcpy(m_radioPositionData, m_buffer, length);
m_radioPositionLen = length;
if (length <= 50U) {
::memcpy(m_radioPositionData, m_buffer, length);
m_radioPositionLen = length;
}
} else if (::memcmp(m_buffer, "DMRA", 4U) == 0) {
::memcpy(m_talkerAliasData, m_buffer, length);
m_talkerAliasLen = length;
if (length <= 50U) {
::memcpy(m_talkerAliasData, m_buffer, length);
m_talkerAliasLen = length;
}
} else if (::memcmp(m_buffer, "DMRC", 4U) == 0) {
m_id = (m_buffer[4U] << 24) | (m_buffer[5U] << 16) | (m_buffer[6U] << 8) | (m_buffer[7U] << 0);