diff --git a/libavcodec/lcldec.c b/libavcodec/lcldec.c index 53637f25076a22dff0692ed76ce17fa3524bfb5a..bc7e11d2678ad7c4319354c11386ce61c61f1878 100644 --- a/libavcodec/lcldec.c +++ b/libavcodec/lcldec.c @@ -93,6 +93,7 @@ static unsigned int mszh_decomp(const unsigned char * srcptr, int srclen, unsign unsigned ofs = bytestream_get_le16(&srcptr); unsigned cnt = (ofs >> 11) + 1; ofs &= 0x7ff; + ofs = FFMIN(ofs, destptr - destptr_bak); cnt *= 4; cnt = FFMIN(cnt, destptr_end - destptr); av_memcpy_backptr(destptr, ofs, cnt);