OSDN Git Service

matroskadec: check realloc in lzo encoding
authorLuca Barbato <lu_zero@gentoo.org>
Fri, 14 Sep 2012 16:39:58 +0000 (18:39 +0200)
committerLuca Barbato <lu_zero@gentoo.org>
Wed, 19 Sep 2012 18:34:13 +0000 (20:34 +0200)
Make all the compression encodings behave the same way.

libavformat/matroskadec.c

index 95130fc..bb505c2 100644 (file)
@@ -999,7 +999,11 @@ static int matroska_decode_buffer(uint8_t** buf, int* buf_size,
     case MATROSKA_TRACK_ENCODING_COMP_LZO:
         do {
             olen = pkt_size *= 3;
-            pkt_data = av_realloc(pkt_data, pkt_size+AV_LZO_OUTPUT_PADDING);
+            newpktdata = av_realloc(pkt_data, pkt_size + AV_LZO_OUTPUT_PADDING);
+            if (!newpktdata) {
+                goto failed;
+            }
+            pkt_data = newpktdata;
             result = av_lzo1x_decode(pkt_data, &olen, data, &isize);
         } while (result==AV_LZO_OUTPUT_FULL && pkt_size<10000000);
         if (result)