avcodec/speexdec: Check channels > 2

More than 2 channels seems unsupported, the code seems to just output empty extra channels

Fixes: Timeout
Fixes: 51569/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_SPEEX_fuzzer-5511509165342720

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 77164b2344)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
This commit is contained in:
Michael Niedermayer 2022-09-29 23:16:51 +02:00
parent e4c5c90493
commit 59fe00912a
No known key found for this signature in database
GPG Key ID: B18E8928B3948D64

View File

@ -1451,7 +1451,7 @@ static av_cold int speex_decode_init(AVCodecContext *avctx)
return AVERROR_INVALIDDATA; return AVERROR_INVALIDDATA;
s->nb_channels = avctx->channels; s->nb_channels = avctx->channels;
if (s->nb_channels <= 0) if (s->nb_channels <= 0 || s->nb_channels > 2)
return AVERROR_INVALIDDATA; return AVERROR_INVALIDDATA;
switch (s->rate) { switch (s->rate) {