Commit ade8a461 authored by Michael Niedermayer's avatar Michael Niedermayer

avcodec/sonic: More completely check sample_rate_index and channels

Fixes CID1271783
Signed-off-by: 's avatarMichael Niedermayer <michaelni@gmx.at>
parent c131a9fe
...@@ -883,13 +883,19 @@ static av_cold int sonic_decode_init(AVCodecContext *avctx) ...@@ -883,13 +883,19 @@ static av_cold int sonic_decode_init(AVCodecContext *avctx)
if (s->version >= 1) if (s->version >= 1)
{ {
int sample_rate_index;
s->channels = get_bits(&gb, 2); s->channels = get_bits(&gb, 2);
s->samplerate = samplerate_table[get_bits(&gb, 4)]; sample_rate_index = get_bits(&gb, 4);
if (sample_rate_index >= FF_ARRAY_ELEMS(samplerate_table)) {
av_log(avctx, AV_LOG_ERROR, "Invalid sample_rate_index %d\n", sample_rate_index);
return AVERROR_INVALIDDATA;
}
s->samplerate = samplerate_table[sample_rate_index];
av_log(avctx, AV_LOG_INFO, "Sonicv2 chans: %d samprate: %d\n", av_log(avctx, AV_LOG_INFO, "Sonicv2 chans: %d samprate: %d\n",
s->channels, s->samplerate); s->channels, s->samplerate);
} }
if (s->channels > MAX_CHANNELS) if (s->channels > MAX_CHANNELS || s->channels < 1)
{ {
av_log(avctx, AV_LOG_ERROR, "Only mono and stereo streams are supported by now\n"); av_log(avctx, AV_LOG_ERROR, "Only mono and stereo streams are supported by now\n");
return AVERROR_INVALIDDATA; return AVERROR_INVALIDDATA;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment