avcodec/xsubdec: Check that RLE coded image and colors fit in the buffer
[ffmpeg.git] / libavcodec / xsubdec.c
index 2a766b3..93fd0f4 100644 (file)
@@ -91,6 +91,9 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *data_size,
     // we just ignore it
     bytestream_get_le16(&buf);
 
+    if (buf_end - buf < h + 3*4)
+        return AVERROR_INVALIDDATA;
+
     // allocate sub and set values
     sub->rects =  av_mallocz(sizeof(*sub->rects));
     if (!sub->rects)