lcldec: ensure that the offset for av_memcpy_backptr is valid.
authorReimar Döffinger <Reimar.Doeffinger@gmx.de>
Sun, 31 May 2009 17:44:35 +0000 (17:44 +0000)
committerReimar Döffinger <Reimar.Doeffinger@gmx.de>
Sun, 31 May 2009 17:44:35 +0000 (17:44 +0000)
Originally committed as revision 19067 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavcodec/lcldec.c

index 53637f2..bc7e11d 100644 (file)
@@ -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;
             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);
             cnt *= 4;
             cnt = FFMIN(cnt, destptr_end - destptr);
             av_memcpy_backptr(destptr, ofs, cnt);