summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartijn van Beurden <mvanb1@gmail.com>2021-12-22 15:15:16 +0100
committerRalph Giles <giles@thaumas.net>2022-02-08 20:49:11 -0800
commitaa126b8f2f46e581cc4689542b8a14e1663dbfaf (patch)
tree133819d278c22aff308cdc6773945ffab609ea04
parente1575e4a7c5157cbf4e4a16dbd39b74f7174c7be (diff)
downloadflac-aa126b8f2f46e581cc4689542b8a14e1663dbfaf.tar.gz
Mark 32 bps stream with stereo decorrelation as unparsable
Credit: Oss-Fuzz Issue: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=19234 Signed-off-by: Ralph Giles <giles@thaumas.net>
-rw-r--r--src/libFLAC/stream_decoder.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/libFLAC/stream_decoder.c b/src/libFLAC/stream_decoder.c
index eb183186..db430b85 100644
--- a/src/libFLAC/stream_decoder.c
+++ b/src/libFLAC/stream_decoder.c
@@ -2359,6 +2359,11 @@ FLAC__bool read_frame_header_(FLAC__StreamDecoder *decoder)
break;
}
+ if(decoder->private_->frame.header.bits_per_sample == 32 && decoder->private_->frame.header.channel_assignment != FLAC__CHANNEL_ASSIGNMENT_INDEPENDENT){
+ /* Decoder isn't equipped for 33-bit side frame */
+ is_unparseable = true;
+ }
+
#ifndef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
/* check to make sure that reserved bit is 0 */
if(raw_header[3] & 0x01) /* MAGIC NUMBER */