diff --git a/libavcodec/aacdec.c b/libavcodec/aacdec.c

index 62df283..34cc18b 100644 (file)

--- a/libavcodec/aacdec.c
+++ b/libavcodec/aacdec.c
@@ -883,6 +883,11 @@ static av_cold int aac_decode_init(AVCodecContext *avctx)
         }
     }
 
+    if (avctx->channels > MAX_CHANNELS) {
+        av_log(avctx, AV_LOG_ERROR, "Too many channels\n");
+        return AVERROR_INVALIDDATA;
+    }
+
     AAC_INIT_VLC_STATIC( 0, 304);
     AAC_INIT_VLC_STATIC( 1, 270);
     AAC_INIT_VLC_STATIC( 2, 550);
