summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libavcodec/liblc3dec.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/libavcodec/liblc3dec.c b/libavcodec/liblc3dec.c
index c0a31bc91f..90da28679b 100644
--- a/libavcodec/liblc3dec.c
+++ b/libavcodec/liblc3dec.c
@@ -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;