From bdfe60c769f4d4e71a360fe02f06cdb9c039cf35 Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Thu, 18 Apr 2013 00:52:48 +0200 Subject: [PATCH] xan: Check for overlapping copies No valid samples i found use such copies Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind Signed-off-by: Michael Niedermayer --- libavcodec/xan.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/libavcodec/xan.c b/libavcodec/xan.c index 27583522f9..41925aa346 100644 --- a/libavcodec/xan.c +++ b/libavcodec/xan.c @@ -249,6 +249,12 @@ static inline void xan_wc3_copy_pixel_run(XanContext *s, AVFrame *frame, curframe_x = x; prevframe_index = (y + motion_y) * stride + x + motion_x; prevframe_x = x + motion_x; + + if (prev_palette_plane == palette_plane && FFABS(curframe_index - prevframe_index) < pixel_count) { + avpriv_request_sample(s->avctx, "Overlapping copy\n"); + return ; + } + while (pixel_count && curframe_index < s->frame_size && prevframe_index < s->frame_size) {