1
0
Fork 0
mirror of https://github.com/juce-framework/JUCE.git synced 2026-01-10 23:44:24 +00:00

AudioFormatReader: Add early return when numSamples <= 0 to prevent potential crashes

This commit is contained in:
Anthony Nicholls 2023-10-06 11:41:16 +01:00
parent f49ab1d50e
commit de78cd0c06
4 changed files with 12 additions and 0 deletions

View file

@ -834,6 +834,9 @@ public:
clearSamplesBeyondAvailableLength (destSamples, numDestChannels, startOffsetInDestBuffer,
startSampleInFile, numSamples, lengthInSamples);
if (numSamples <= 0)
return true;
if (map == nullptr || ! mappedSection.contains (Range<int64> (startSampleInFile, startSampleInFile + numSamples)))
{
jassertfalse; // you must make sure that the window contains all the samples you're going to attempt to read.

View file

@ -1858,6 +1858,9 @@ public:
clearSamplesBeyondAvailableLength (destSamples, numDestChannels, startOffsetInDestBuffer,
startSampleInFile, numSamples, lengthInSamples);
if (numSamples <= 0)
return true;
if (map == nullptr || ! mappedSection.contains (Range<int64> (startSampleInFile, startSampleInFile + numSamples)))
{
jassertfalse; // you must make sure that the window contains all the samples you're going to attempt to read.

View file

@ -56,6 +56,9 @@ bool AudioSubsectionReader::readSamples (int* const* destSamples, int numDestCha
clearSamplesBeyondAvailableLength (destSamples, numDestChannels, startOffsetInDestBuffer,
startSampleInFile, numSamples, length);
if (numSamples <= 0)
return true;
return source->readSamples (destSamples, numDestChannels, startOffsetInDestBuffer,
startSampleInFile + startSample, numSamples);
}

View file

@ -205,6 +205,9 @@ struct TestAudioFormatReader : public AudioFormatReader
clearSamplesBeyondAvailableLength (destChannels, numDestChannels, startOffsetInDestBuffer,
startSampleInFile, numSamples, lengthInSamples);
if (numSamples <= 0)
return true;
for (int j = 0; j < numDestChannels; ++j)
{
static_assert (sizeof (int) == sizeof (float),