@@ -123,7 +123,7 @@ core::smart_refctd_ptr<IFileArchive> CArchiveLoaderZip::createArchive_impl(core:
123
123
item.pathRelativeToArchive = _path;
124
124
item.size = meta.DataDescriptor .UncompressedSize ;
125
125
item.offset = offset;
126
- item.ID = items .size ();
126
+ item.ID = itemsMetadata .size ();
127
127
item.allocatorType = meta.CompressionMethod ? IFileArchive::EAT_VIRTUAL_ALLOC:IFileArchive::EAT_NULL;
128
128
itemsMetadata.push_back (meta);
129
129
};
@@ -232,7 +232,7 @@ core::smart_refctd_ptr<IFileArchive> CArchiveLoaderZip::createArchive_impl(core:
232
232
SZIPFileHeader zipHeader;
233
233
{
234
234
IFile::success_t success;
235
- file->read (success,&zipHeader,0ull ,sizeof (zipHeader));
235
+ file->read (success,&zipHeader,offset ,sizeof (zipHeader));
236
236
if (!success)
237
237
break ;
238
238
offset += success.getSizeToProcess ();
@@ -393,7 +393,7 @@ CFileArchive::file_buffer_t CArchiveLoaderZip::CArchive::getFileBuffer(const IFi
393
393
CFileArchive::file_buffer_t retval = { nullptr ,item->size ,nullptr };
394
394
//
395
395
void * decrypted = nullptr ;
396
- size_t decryptedSize = 0ull ;
396
+ size_t decryptedSize = header. DataDescriptor . CompressedSize ;
397
397
auto freeOnFail = core::makeRAIIExiter ([&actualCompressionMethod,&retval,&decrypted,&decryptedSize](){
398
398
if (decrypted && retval.buffer !=decrypted)
399
399
{
@@ -424,7 +424,7 @@ CFileArchive::file_buffer_t CArchiveLoaderZip::CArchive::getFileBuffer(const IFi
424
424
const size_t reduction = saltSize+12u ;
425
425
if (header.DataDescriptor .CompressedSize <=reduction)
426
426
return retval;
427
- decryptedSize = header. DataDescriptor . CompressedSize - reduction;
427
+ decryptedSize -= reduction;
428
428
}
429
429
mmapPtr += saltSize;
430
430
uint16_t & pwVerification = *reinterpret_cast <uint16_t *>(mmapPtr);
0 commit comments