perform sanity check on number of audio channels in avcodec_open()
authorPeter Ross <pross@xvid.org>
Wed, 16 Sep 2009 11:29:47 +0000 (11:29 +0000)
committerPeter Ross <pross@xvid.org>
Wed, 16 Sep 2009 11:29:47 +0000 (11:29 +0000)
Originally committed as revision 19877 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavcodec/utils.c

index 43147a5..e22bc33 100644 (file)
@@ -471,7 +471,9 @@ int attribute_align_arg avcodec_open(AVCodecContext *avctx, AVCodec *codec)
     else if(avctx->width && avctx->height)
         avcodec_set_dimensions(avctx, avctx->width, avctx->height);
 
-    if((avctx->coded_width||avctx->coded_height) && avcodec_check_dimensions(avctx,avctx->coded_width,avctx->coded_height)){
+#define SANE_NB_CHANNELS 128U
+    if((avctx->coded_width||avctx->coded_height) && avcodec_check_dimensions(avctx,avctx->coded_width,avctx->coded_height) ||
+        avctx->channels > SANE_NB_CHANNELS) {
         av_freep(&avctx->priv_data);
         ret = AVERROR(EINVAL);
         goto end;