OSDN Git Service

Do not read out of array bounds.
authorRamiro Polla <ramiro.polla@gmail.com>
Sun, 4 May 2008 01:07:46 +0000 (01:07 +0000)
committerRamiro Polla <ramiro.polla@gmail.com>
Sun, 4 May 2008 01:07:46 +0000 (01:07 +0000)
Originally committed as revision 13053 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavcodec/flac.c

index d2cc383..2e8e99b 100644 (file)
@@ -279,9 +279,13 @@ static int decode_subframe_fixed(FLACContext *s, int channel, int pred_order)
     if (decode_residuals(s, channel, pred_order) < 0)
         return -1;
 
+    if(pred_order > 0)
     a = decoded[pred_order-1];
+    if(pred_order > 1)
     b = a - decoded[pred_order-2];
+    if(pred_order > 2)
     c = b - decoded[pred_order-2] + decoded[pred_order-3];
+    if(pred_order > 3)
     d = c - decoded[pred_order-2] + 2*decoded[pred_order-3] - decoded[pred_order-4];
 
     switch(pred_order)