diff --git a/libavcodec/dfa.c b/libavcodec/dfa.c index 46051e041d..ae184d7b5f 100644 --- a/libavcodec/dfa.c +++ b/libavcodec/dfa.c @@ -122,9 +122,7 @@ static int decode_dsw1(GetByteContext *gb, uint8_t *frame, int width, int height count = ((v >> 13) + 2) << 1; if (frame - frame_start < offset || frame_end - frame < count) return AVERROR_INVALIDDATA; - // can't use av_memcpy_backptr() since it can overwrite following pixels - for (v = 0; v < count; v++) - frame[v] = frame[v - offset]; + av_memcpy_backptr(frame, offset, count); frame += count; } else if (bitbuf & (mask << 1)) { frame += bytestream2_get_le16(gb);