Browse Source

Merge commit 'd98e6c5d5d80c1dfe0c30f2e73d41a3aea0b920d'

* commit 'd98e6c5d5d80c1dfe0c30f2e73d41a3aea0b920d':
  pgssubdec: Check RLE size before copying

See: c0d68be555
Merged-by: Michael Niedermayer <michaelni@gmx.at>
tags/n2.4
Michael Niedermayer 11 years ago
parent
commit
7db3a46a3d
1 changed files with 7 additions and 5 deletions
  1. +7
    -5
      libavcodec/pgssubdec.c

+ 7
- 5
libavcodec/pgssubdec.c View 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;



Loading…
Cancel
Save