From 30c652fe4fda20ca07b6c5de4d2523e2f7c6c5cb Mon Sep 17 00:00:00 2001 From: Tom Tsou Date: Mon, 2 May 2016 17:56:32 -0700 Subject: [PATCH] transceiver: Use length fields in UDP receive calls Update to match socket changes for buffer underrun prevention in CommonLibs patch "common: Add mandatory length field to UDP receive calls" Reported-by: Simone Margaritelli Signed-off-by: Tom Tsou --- Transceiver52M/Transceiver.cpp | 4 ++-- TransceiverRAD1/Transceiver.cpp | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Transceiver52M/Transceiver.cpp b/Transceiver52M/Transceiver.cpp index d22fcbe..8014722 100644 --- a/Transceiver52M/Transceiver.cpp +++ b/Transceiver52M/Transceiver.cpp @@ -470,7 +470,7 @@ void Transceiver::driveControl() int msgLen = -1; buffer[0] = '\0'; - msgLen = mControlSocket.read(buffer); + msgLen = mControlSocket.read(buffer, sizeof(buffer)); if (msgLen < 1) { return; @@ -661,7 +661,7 @@ bool Transceiver::driveTransmitPriorityQueue() char buffer[gSlotLen+50]; // check data socket - size_t msgLen = mDataSocket.read(buffer); + size_t msgLen = mDataSocket.read(buffer, sizeof(buffer)); if (msgLen!=gSlotLen+1+4+1) { LOG(ERR) << "badly formatted packet on GSM->TRX interface"; diff --git a/TransceiverRAD1/Transceiver.cpp b/TransceiverRAD1/Transceiver.cpp index fe27503..80845e1 100644 --- a/TransceiverRAD1/Transceiver.cpp +++ b/TransceiverRAD1/Transceiver.cpp @@ -463,7 +463,7 @@ void Transceiver::driveControl(unsigned ARFCN) int msgLen = -1; buffer[0] = '\0'; - msgLen = mControlSocket[ARFCN]->read(buffer); + msgLen = mControlSocket[ARFCN]->read(buffer, sizeof(buffer)); mControlLock.lock(); @@ -725,7 +725,7 @@ bool Transceiver::driveTransmitPriorityQueue(unsigned ARFCN) char buffer[gSlotLen+50]; // check data socket - size_t msgLen = mDataSocket[ARFCN]->read(buffer); + size_t msgLen = mDataSocket[ARFCN]->read(buffer, sizeof(buffer)); ScopedLock lock(mTransmitPriorityQueueLock);