From 802749afd33c6ed67d92d7d7260fa6da24098c98 Mon Sep 17 00:00:00 2001 From: Jon Beniston Date: Mon, 8 Mar 2021 21:41:46 +0000 Subject: [PATCH] Check sample rate is non-zero to avoid divide by zero --- plugins/samplesource/fileinput/fileinput.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/plugins/samplesource/fileinput/fileinput.cpp b/plugins/samplesource/fileinput/fileinput.cpp index 4d8988f52..fc05306a0 100644 --- a/plugins/samplesource/fileinput/fileinput.cpp +++ b/plugins/samplesource/fileinput/fileinput.cpp @@ -110,16 +110,21 @@ void FileInput::openFileStream() m_sampleSize = header.sampleSize; QString crcHex = QString("%1").arg(header.crc32 , 0, 16); - if (crcOK) + if (crcOK && (m_sampleRate > 0) && (m_sampleSize > 0)) { qDebug("FileInput::openFileStream: CRC32 OK for header: %s", qPrintable(crcHex)); m_recordLengthMuSec = ((fileSize - sizeof(FileRecord::Header)) * 1000000UL) / ((m_sampleSize == 24 ? 8 : 4) * m_sampleRate); } - else + else if (!crcOK) { qCritical("FileInput::openFileStream: bad CRC32 for header: %s", qPrintable(crcHex)); m_recordLengthMuSec = 0; } + else + { + qCritical("FileInput::openFileStream: invalid header"); + m_recordLengthMuSec = 0; + } if (getMessageQueueToGUI()) {