This commit is contained in:
vsheludchenkov-nord 2025-03-27 15:27:23 +01:00 committed by GitHub
commit 2422263469
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -118,19 +118,35 @@ static SRes Xz_ReadIndex2(CXzStream *p, const Byte *buf, size_t size, ISzAllocPt
p->blocks = (CXzBlockSizes *)ISzAlloc_Alloc(alloc, sizeof(CXzBlockSizes) * numBlocks);
if (!p->blocks)
return SZ_ERROR_MEM;
for (i = 0; i < numBlocks; i++)
{
CXzBlockSizes *block = &p->blocks[i];
READ_VARINT_AND_CHECK(buf, pos, size, &block->totalSize)
READ_VARINT_AND_CHECK(buf, pos, size, &block->unpackSize)
if (block->totalSize == 0)
{
Xz_Free(p, alloc);
return SZ_ERROR_ARCHIVE;
}
}
}
while ((pos & 3) != 0)
{
if (buf[pos++] != 0)
{
Xz_Free(p, alloc);
return SZ_ERROR_ARCHIVE;
return (pos == size) ? SZ_OK : SZ_ERROR_ARCHIVE;
}
}
if (pos != size)
{
Xz_Free(p, alloc);
return SZ_ERROR_ARCHIVE;
}
return SZ_OK;
}
static SRes Xz_ReadIndex(CXzStream *p, ILookInStreamPtr stream, UInt64 indexSize, ISzAllocPtr alloc)