summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libavcodec/dxv.c4
1 files changed, 4 insertions, 0 deletions
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++;