Silence some compilation warnings.

This commit is contained in:
Markus F.X.J. Oberhumer
2013-02-18 11:01:30 +01:00
parent 9c9fb6a485
commit 36dd35f238
6 changed files with 26 additions and 22 deletions
+6 -7
View File
@@ -508,22 +508,21 @@ int PackUnix::canUnpack()
int bufsize = 2*4096 + 2*small +1;
if (bufsize > fi->st_size())
bufsize = fi->st_size();
upx_byte buf[bufsize];
MemBuffer buf(bufsize);
fi->seek(-bufsize, SEEK_END);
fi->readx(buf, bufsize);
buf[small] = 1; // Prevent running off the low-address end.
upx_byte *ptr = &buf[bufsize];
while (0 == *--ptr) ;
ptr -= small;
int i = bufsize;
while (i > small && 0 == buf[--i]) { }
i -= small;
// allow incompressible extents
if (!getPackHeader(ptr, bufsize - (ptr - buf), true))
if (i < 0 || !getPackHeader(buf + i, bufsize - i, true))
return false;
int l = ph.buf_offset + ph.getPackHeaderSize();
if (l < 0 || l + 4 > bufsize)
throwCantUnpack("file corrupted");
overlay_offset = get_te32(ptr+l);
overlay_offset = get_te32(buf + i + l);
if ((off_t)overlay_offset >= file_size)
throwCantUnpack("file corrupted");