diff --git a/libavcodec/qdrw.c b/libavcodec/qdrw.c index 6c920aa460..0bcf5dca22 100644 --- a/libavcodec/qdrw.c +++ b/libavcodec/qdrw.c @@ -95,6 +95,8 @@ static int decode_rle(AVCodecContext *avctx, AVFrame *p, GetByteContext *gbc, pos -= offset; pos++; } + if (pos >= offset) + return AVERROR_INVALIDDATA; } left -= 2; } else { /* copy */ @@ -105,6 +107,8 @@ static int decode_rle(AVCodecContext *avctx, AVFrame *p, GetByteContext *gbc, pos -= offset; pos++; } + if (pos >= offset) + return AVERROR_INVALIDDATA; } left -= 2 + code; }