aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartijn van Beurden <mvanb1@gmail.com>2023-03-08 19:57:01 +0100
committerMartijn van Beurden <mvanb1@gmail.com>2023-03-09 14:31:49 +0100
commit6db29d1050aa2e2a6ee1bad128ad897aca08f24f (patch)
tree3fbec17d542049e54495ef733889605c1b5cfb07
parent4d6d8b342f03d58bffd93346241996e479e4c979 (diff)
downloadflac-6db29d1050aa2e2a6ee1bad128ad897aca08f24f.tar.gz
Check for got_stream_info instead of samplerate being 0
Credit: Oss-Fuzz Issue: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=56427
-rw-r--r--src/flac/decode.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/src/flac/decode.c b/src/flac/decode.c
index a1fb00a3..c9c74546 100644
--- a/src/flac/decode.c
+++ b/src/flac/decode.c
@@ -1161,7 +1161,7 @@ FLAC__StreamDecoderWriteStatus write_callback(const FLAC__StreamDecoder *decoder
}
/* sanity-check the sample rate */
- if(decoder_session->sample_rate) {
+ if(!decoder_session->got_stream_info) {
if(frame->header.sample_rate != decoder_session->sample_rate) {
if(decoder_session->got_stream_info)
flac__utils_printf(stderr, 1, "%s: ERROR, sample rate is %u in frame but %u in STREAMINFO\n", decoder_session->inbasefilename, frame->header.sample_rate, decoder_session->sample_rate);
@@ -1172,8 +1172,6 @@ FLAC__StreamDecoderWriteStatus write_callback(const FLAC__StreamDecoder *decoder
}
}
else {
- /* must not have gotten STREAMINFO, save the sample rate from the frame header */
- FLAC__ASSERT(!decoder_session->got_stream_info);
decoder_session->sample_rate = frame->header.sample_rate;
}