25 lines
847 B
Diff
25 lines
847 B
Diff
Index: CPP/7zip/Archive/HfsHandler.cpp
|
|
===================================================================
|
|
--- CPP/7zip/Archive/HfsHandler.cpp.orig
|
|
+++ CPP/7zip/Archive/HfsHandler.cpp
|
|
@@ -987,7 +987,9 @@ HRESULT CDatabase::LoadCatalog(const CFo
|
|
item.GroupID = Get32(r + 0x24);
|
|
item.AdminFlags = r[0x28];
|
|
item.OwnerFlags = r[0x29];
|
|
+ */
|
|
item.FileMode = Get16(r + 0x2A);
|
|
+ /*
|
|
item.special.iNodeNum = Get16(r + 0x2C); // or .linkCount
|
|
item.FileType = Get32(r + 0x30);
|
|
item.FileCreator = Get32(r + 0x34);
|
|
@@ -1572,6 +1574,9 @@ HRESULT CHandler::ExtractZlibFile(
|
|
|
|
UInt32 size = GetUi32(tableBuf + i * 8 + 4);
|
|
|
|
+ if (size > buf.Size() || size > kCompressionBlockSize + 1)
|
|
+ return S_FALSE;
|
|
+
|
|
RINOK(ReadStream_FALSE(inStream, buf, size));
|
|
|
|
if ((buf[0] & 0xF) == 0xF)
|