smacker: validate number of channels
authorJustin Ruggles <justin.ruggles@gmail.com>
Wed, 21 Sep 2011 15:37:51 +0000 (11:37 -0400)
committerJustin Ruggles <justin.ruggles@gmail.com>
Tue, 11 Oct 2011 11:48:16 +0000 (07:48 -0400)
libavcodec/smacker.c

index 496bbb5..f3dec7f 100644 (file)
@@ -559,6 +559,10 @@ static av_cold int decode_end(AVCodecContext *avctx)
 
 static av_cold int smka_decode_init(AVCodecContext *avctx)
 {
+    if (avctx->channels < 1 || avctx->channels > 2) {
+        av_log(avctx, AV_LOG_ERROR, "invalid number of channels\n");
+        return AVERROR(EINVAL);
+    }
     avctx->channel_layout = (avctx->channels==2) ? AV_CH_LAYOUT_STEREO : AV_CH_LAYOUT_MONO;
     avctx->sample_fmt = avctx->bits_per_coded_sample == 8 ? AV_SAMPLE_FMT_U8 : AV_SAMPLE_FMT_S16;
     return 0;