avcodec/liblc3dec: sanitize channel count in avctx

Should prevent out of array accesses.

Signed-off-by: James Almer <jamrial@gmail.com>
This commit is contained in:
James Almer 2024-04-04 13:25:55 -03:00
parent 240fd04db2
commit 45d2110fc7
1 changed files with 6 additions and 0 deletions

View File

@ -46,6 +46,12 @@ static av_cold int liblc3_decode_init(AVCodecContext *avctx)
if (avctx->extradata_size < 10)
return AVERROR_INVALIDDATA;
if (channels < 0 || channels > DECODER_MAX_CHANNELS) {
av_log(avctx, AV_LOG_ERROR,
"Invalid number of channels %d. Max %d channels are accepted\n",
channels, DECODER_MAX_CHANNES);
return AVERROR(EINVAL);
}
liblc3->frame_us = AV_RL16(avctx->extradata + 0) * 10;
liblc3->srate_hz = avctx->sample_rate;