diff --git a/libavcodec/dxv.c b/libavcodec/dxv.c index f1ea2987ae..05a9aadd24 100644 --- a/libavcodec/dxv.c +++ b/libavcodec/dxv.c @@ -260,6 +260,10 @@ static int dxv_decompress_dxt5(AVCodecContext *avctx) case 2: /* Copy two dwords from a previous index */ idx = 8 + bytestream2_get_le16(gbc); + if (idx > pos) { + av_log(avctx, AV_LOG_ERROR, "idx %d > %d\n", idx, pos); + return AVERROR_INVALIDDATA; + } prev = AV_RL32(ctx->tex_data + 4 * (pos - idx)); AV_WL32(ctx->tex_data + 4 * pos, prev); pos++;