From 6533df15f57fd617c90d62a7599c7edd9518360b Mon Sep 17 00:00:00 2001 From: f4exb Date: Sun, 17 Nov 2019 03:16:10 +0100 Subject: [PATCH] Sample source FIFO: limit read count to FIFO size --- sdrbase/dsp/samplesourcefifo.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sdrbase/dsp/samplesourcefifo.cpp b/sdrbase/dsp/samplesourcefifo.cpp index 059c40f36..98147e37b 100644 --- a/sdrbase/dsp/samplesourcefifo.cpp +++ b/sdrbase/dsp/samplesourcefifo.cpp @@ -62,7 +62,7 @@ void SampleSourceFifo::read( { QMutexLocker mutexLocker(&m_mutex); unsigned int spaceLeft = m_size - m_readHead; - m_readCount += amount; + m_readCount = m_readCount + amount < m_size ? m_readCount + amount : m_size; // cannot exceed FIFO size if (amount <= spaceLeft) { @@ -125,7 +125,7 @@ void SampleSourceFifo::write( m_writeHead = remaining; } - m_readCount = amount < m_readCount ? m_readCount - amount : 0; + m_readCount = amount < m_readCount ? m_readCount - amount : 0; // cannot be less than 0 } unsigned int SampleSourceFifo::getSizePolicy(unsigned int sampleRate)