aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Niedermayer <michael@niedermayer.cc>2023-02-12 22:49:01 +0100
committerMichael Niedermayer <michael@niedermayer.cc>2023-05-26 00:04:44 +0200
commit4443cdbc92d36d65fedfdb709a8cf74bef6a64e7 (patch)
treec6a041a81dbeceb6134ae54f81a16f207cf0c8b3
parent67128a952c88227bf2b2db2337b50bc403568aa5 (diff)
downloadffmpeg-4443cdbc92d36d65fedfdb709a8cf74bef6a64e7.tar.gz
avcodec/vorbisdec: Check codebook float values to be finite
Fixes: Timeout Fixes: 55116/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_VORBIS_fuzzer-4572159970508800 Signed-off-by: Michael Niedermayer <michael@niedermayer.cc> (cherry picked from commit cadd7e7a7589b5c118ad1648a09c629a6b65a3be) Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
-rw-r--r--libavcodec/vorbisdec.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/libavcodec/vorbisdec.c b/libavcodec/vorbisdec.c
index be6d1b2d21..c748aa574f 100644
--- a/libavcodec/vorbisdec.c
+++ b/libavcodec/vorbisdec.c
@@ -363,6 +363,10 @@ static int vorbis_parse_setup_hdr_codebooks(vorbis_context *vc)
unsigned codebook_value_bits = get_bits(gb, 4) + 1;
unsigned codebook_sequence_p = get_bits1(gb);
+ if (!isfinite(codebook_minimum_value) || !isfinite(codebook_delta_value)) {
+ ret = AVERROR_INVALIDDATA;
+ goto error;
+ }
ff_dlog(NULL, " We expect %d numbers for building the codevectors. \n",
codebook_lookup_values);
ff_dlog(NULL, " delta %f minmum %f \n",