Commit d94e29ca authored by Justin Ruggles's avatar Justin Ruggles

pcmdec: move number of channels check to pcm_decode_init()

parent 83efd765
...@@ -213,6 +213,11 @@ static av_cold int pcm_decode_init(AVCodecContext * avctx) ...@@ -213,6 +213,11 @@ static av_cold int pcm_decode_init(AVCodecContext * avctx)
PCMDecode *s = avctx->priv_data; PCMDecode *s = avctx->priv_data;
int i; int i;
if (avctx->channels <= 0 || avctx->channels > MAX_CHANNELS) {
av_log(avctx, AV_LOG_ERROR, "PCM channels out of bounds\n");
return AVERROR(EINVAL);
}
switch(avctx->codec->id) { switch(avctx->codec->id) {
case CODEC_ID_PCM_ALAW: case CODEC_ID_PCM_ALAW:
for(i=0;i<256;i++) for(i=0;i<256;i++)
...@@ -266,11 +271,6 @@ static int pcm_decode_frame(AVCodecContext *avctx, ...@@ -266,11 +271,6 @@ static int pcm_decode_frame(AVCodecContext *avctx,
samples = data; samples = data;
src = buf; src = buf;
if(avctx->channels <= 0 || avctx->channels > MAX_CHANNELS){
av_log(avctx, AV_LOG_ERROR, "PCM channels out of bounds\n");
return -1;
}
sample_size = av_get_bits_per_sample(avctx->codec_id)/8; sample_size = av_get_bits_per_sample(avctx->codec_id)/8;
/* av_get_bits_per_sample returns 0 for CODEC_ID_PCM_DVD */ /* av_get_bits_per_sample returns 0 for CODEC_ID_PCM_DVD */
......
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