Commit f472fc79 authored by reimar's avatar reimar

Use srcptr_end variable to avoid having to update both srcptr and srclen.


git-svn-id: file:///var/local/repositories/ffmpeg/trunk@19048 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b
parent 0c77b3c0
...@@ -75,22 +75,21 @@ static unsigned int mszh_decomp(unsigned char * srcptr, int srclen, unsigned cha ...@@ -75,22 +75,21 @@ static unsigned int mszh_decomp(unsigned char * srcptr, int srclen, unsigned cha
{ {
unsigned char *destptr_bak = destptr; unsigned char *destptr_bak = destptr;
unsigned char *destptr_end = destptr + destsize; unsigned char *destptr_end = destptr + destsize;
unsigned char *srcptr_end = srcptr + srclen;
unsigned char mask = 0; unsigned char mask = 0;
unsigned char maskbit = 0; unsigned char maskbit = 0;
unsigned int ofs, cnt; unsigned int ofs, cnt;
while (srclen > 0 && destptr < destptr_end) { while (srcptr < srcptr_end && destptr < destptr_end) {
if (maskbit == 0) { if (maskbit == 0) {
mask = *srcptr++; mask = *srcptr++;
maskbit = 8; maskbit = 8;
srclen--;
continue; continue;
} }
if ((mask & (1 << (--maskbit))) == 0) { if ((mask & (1 << (--maskbit))) == 0) {
if (destptr_end - destptr < 4) if (destptr_end - destptr < 4)
break; break;
memcpy(destptr, srcptr, 4); memcpy(destptr, srcptr, 4);
srclen -= 4;
destptr += 4; destptr += 4;
srcptr += 4; srcptr += 4;
} else { } else {
...@@ -99,7 +98,6 @@ static unsigned int mszh_decomp(unsigned char * srcptr, int srclen, unsigned cha ...@@ -99,7 +98,6 @@ static unsigned int mszh_decomp(unsigned char * srcptr, int srclen, unsigned cha
ofs += cnt * 256; ofs += cnt * 256;
cnt = ((cnt >> 3) & 0x1f) + 1; cnt = ((cnt >> 3) & 0x1f) + 1;
ofs &= 0x7ff; ofs &= 0x7ff;
srclen -= 2;
cnt *= 4; cnt *= 4;
if (destptr_end - destptr < cnt) { if (destptr_end - destptr < cnt) {
cnt = destptr_end - destptr; cnt = destptr_end - destptr;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment