Browse Source

Fix crash when pred_order greater s->blocksize >> rice_order.
Fixes http://sam.zoy.org/zzuf/lol-mplayer.flac

Originally committed as revision 7595 to svn://svn.ffmpeg.org/ffmpeg/trunk

Reimar Döffinger 18 years ago
parent
commit
5484dad7f6
1 changed files with 4 additions and 0 deletions
  1. 4 0
      libavcodec/flac.c

+ 4 - 0
libavcodec/flac.c

@@ -225,6 +225,10 @@ static int decode_residuals(FLACContext *s, int channel, int pred_order)
     rice_order = get_bits(&s->gb, 4);
 
     samples= s->blocksize >> rice_order;
+    if (pred_order > samples) {
+        av_log(s->avctx, AV_LOG_ERROR, "invalid predictor order: %i > %i\n", pred_order, samples);
+        return -1;
+    }
 
     sample=
     i= pred_order;