[FFmpeg-cvslog] matroskadec: Check for overflows in xiph lace decoding

Michael Niedermayer git at videolan.org
Thu Apr 4 15:53:03 CEST 2013


ffmpeg | branch: master | Michael Niedermayer <michaelni at gmx.at> | Thu Apr  4 15:17:57 2013 +0200| [115c3bc41f24185477de7e012b799e47693e3b5e] | committer: Michael Niedermayer

matroskadec: Check for overflows in xiph lace decoding

This also detects errors earlier

Signed-off-by: Michael Niedermayer <michaelni at gmx.at>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=115c3bc41f24185477de7e012b799e47693e3b5e
---

 libavformat/matroskadec.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c
index d068453..39559b5 100644
--- a/libavformat/matroskadec.c
+++ b/libavformat/matroskadec.c
@@ -1992,18 +1992,18 @@ static int matroska_parse_laces(MatroskaDemuxContext *matroska, uint8_t **buf,
         uint32_t total = 0;
         for (n = 0; res == 0 && n < *laces - 1; n++) {
             while (1) {
-                if (size == 0) {
+                if (size <= total) {
                     res = AVERROR_INVALIDDATA;
                     break;
                 }
                 temp = *data;
+                total += temp;
                 lace_size[n] += temp;
                 data += 1;
                 size -= 1;
                 if (temp != 0xff)
                     break;
             }
-            total += lace_size[n];
         }
         if (size <= total) {
             res = AVERROR_INVALIDDATA;



More information about the ffmpeg-cvslog mailing list