|
@@ -96,7 +96,13 @@ static unsigned int mszh_decomp(const unsigned char * srcptr, int srclen, unsign
|
|
|
ofs = FFMIN(ofs, destptr - destptr_bak);
|
|
|
cnt *= 4;
|
|
|
cnt = FFMIN(cnt, destptr_end - destptr);
|
|
|
- av_memcpy_backptr(destptr, ofs, cnt);
|
|
|
+ if (ofs) {
|
|
|
+ av_memcpy_backptr(destptr, ofs, cnt);
|
|
|
+ } else {
|
|
|
+ // Not known what the correct behaviour is, but
|
|
|
+ // this at least avoids uninitialized data.
|
|
|
+ memset(destptr, 0, cnt);
|
|
|
+ }
|
|
|
destptr += cnt;
|
|
|
}
|
|
|
maskbit >>= 1;
|