Fix crash when pred_order greater s->blocksize >> rice_order.
authorReimar Döffinger <Reimar.Doeffinger@gmx.de>
Sun, 21 Jan 2007 09:55:28 +0000 (09:55 +0000)
committerReimar Döffinger <Reimar.Doeffinger@gmx.de>
Sun, 21 Jan 2007 09:55:28 +0000 (09:55 +0000)
Fixes http://sam.zoy.org/zzuf/lol-mplayer.flac

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

libavcodec/flac.c

index e704d99..1016ed4 100644 (file)
@@ -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;