Test for supported number of channels
authorVitor Sessak <vitor1001@gmail.com>
Wed, 18 Jul 2007 06:45:47 +0000 (06:45 +0000)
committerVitor Sessak <vitor1001@gmail.com>
Wed, 18 Jul 2007 06:45:47 +0000 (06:45 +0000)
Originally committed as revision 9730 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavcodec/alac.c

index fac8a83..3883f41 100644 (file)
@@ -491,6 +491,11 @@ static int alac_decode_frame(AVCodecContext *avctx,
     init_get_bits(&alac->gb, inbuffer, input_buffer_size * 8);
 
     channels = get_bits(&alac->gb, 3) + 1;
     init_get_bits(&alac->gb, inbuffer, input_buffer_size * 8);
 
     channels = get_bits(&alac->gb, 3) + 1;
+    if (channels > MAX_CHANNELS) {
+        av_log(avctx, AV_LOG_ERROR, "channels > %d not supported\n",
+               MAX_CHANNELS);
+        return input_buffer_size;
+    }
 
     /* 2^result = something to do with output waiting.
      * perhaps matters if we read > 1 frame in a pass?
 
     /* 2^result = something to do with output waiting.
      * perhaps matters if we read > 1 frame in a pass?