diff --git a/src/caf_reader.c b/src/caf_reader.c index 05b2151..2b9950a 100644 --- a/src/caf_reader.c +++ b/src/caf_reader.c @@ -75,8 +75,10 @@ int caf_desc(caf_reader_t *reader, int64_t chunk_size) ENSURE(mFormatID == M4AF_FOURCC('l','p','c','m')); ENSURE(mSampleRate && mBytesPerPacket && mChannelsPerFrame >= 1 && mChannelsPerFrame <= 8 && - mBitsPerChannel && mFramesPerPacket == 1 && + mBitsPerChannel > 0 && mBitsPerChannel < 256 && + mFramesPerPacket == 1 && mBytesPerPacket % mChannelsPerFrame == 0 && + mBytesPerPacket < 256 && mBytesPerPacket >= mChannelsPerFrame * ((mBitsPerChannel + 7) / 8)); desc->sample_rate = mSampleRate; diff --git a/src/wav_reader.c b/src/wav_reader.c index 4c6cc66..638a625 100644 --- a/src/wav_reader.c +++ b/src/wav_reader.c @@ -113,8 +113,10 @@ int wav_fmt(wav_reader_t *reader, uint32_t size) wValidBitsPerSample = wBitsPerSample; ENSURE(wFormatTag == 1 || wFormatTag == 3 || wFormatTag == 0xfffe); - ENSURE(nChannels && nSamplesPerSec && nAvgBytesPerSec && - nBlockAlign && wBitsPerSample && !(wBitsPerSample & 7) && + ENSURE(nChannels > 0 && nChannels <= 8 && + nSamplesPerSec && nAvgBytesPerSec && + nBlockAlign && nBlockAlign < 256 && + wBitsPerSample && wBitsPerSample < 256 && !(wBitsPerSample & 7) && nBlockAlign == nChannels * wBitsPerSample / 8); if (wFormatTag == 3)