]> git.sesse.net Git - ffmpeg/blobdiff - libavcodec/pgssubdec.c
drop LLS1, rename LLS2 to LLS
[ffmpeg] / libavcodec / pgssubdec.c
index c6331692a03cf797ee09dd0354d91ac530feda02..36f1f8265a576ff7b87b03ba3e6c79ae286ea2d0 100644 (file)
@@ -278,6 +278,13 @@ static int parse_object_segment(AVCodecContext *avctx,
     /* Decode rle bitmap length, stored size includes width/height data */
     rle_bitmap_len = bytestream_get_be24(&buf) - 2*2;
 
+    if (buf_size > rle_bitmap_len) {
+        av_log(avctx, AV_LOG_ERROR,
+               "Buffer dimension %d larger than the expected RLE data %d\n",
+               buf_size, rle_bitmap_len);
+        return AVERROR_INVALIDDATA;
+    }
+
     /* Get bitmap dimensions from data */
     width  = bytestream_get_be16(&buf);
     height = bytestream_get_be16(&buf);
@@ -288,11 +295,6 @@ static int parse_object_segment(AVCodecContext *avctx,
         return AVERROR_INVALIDDATA;
     }
 
-    if (buf_size > rle_bitmap_len) {
-        av_log(avctx, AV_LOG_ERROR, "too much RLE data\n");
-        return AVERROR_INVALIDDATA;
-    }
-
     object->w = width;
     object->h = height;