Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/kornelski/7z.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'CPP/7zip/Archive/Cab/CabBlockInStream.cpp')
-rwxr-xr-xCPP/7zip/Archive/Cab/CabBlockInStream.cpp20
1 files changed, 7 insertions, 13 deletions
diff --git a/CPP/7zip/Archive/Cab/CabBlockInStream.cpp b/CPP/7zip/Archive/Cab/CabBlockInStream.cpp
index 570ce058..343ef821 100755
--- a/CPP/7zip/Archive/Cab/CabBlockInStream.cpp
+++ b/CPP/7zip/Archive/Cab/CabBlockInStream.cpp
@@ -116,19 +116,14 @@ HRESULT CCabBlockInStream::PreRead(UInt32 &packSize, UInt32 &unpackSize)
{
CTempCabInBuffer2 inBuffer;
inBuffer.Pos = 0;
- UInt32 processedSizeLoc;
- RINOK(ReadStream(_stream, inBuffer.Buffer, kDataBlockHeaderSize, &processedSizeLoc))
- if (processedSizeLoc != kDataBlockHeaderSize)
- return S_FALSE; // bad block
+ RINOK(ReadStream_FALSE(_stream, inBuffer.Buffer, kDataBlockHeaderSize))
UInt32 checkSum = inBuffer.ReadUInt32();
packSize = inBuffer.ReadUInt16();
unpackSize = inBuffer.ReadUInt16();
if (ReservedSize != 0)
{
- RINOK(ReadStream(_stream, _buffer, ReservedSize, &processedSizeLoc));
- if(ReservedSize != processedSizeLoc)
- return S_FALSE; // bad block;
+ RINOK(ReadStream_FALSE(_stream, _buffer, ReservedSize));
}
_pos = 0;
CCheckSum2 checkSumCalc;
@@ -139,9 +134,7 @@ HRESULT CCabBlockInStream::PreRead(UInt32 &packSize, UInt32 &unpackSize)
if (packSize < 2)
return S_FALSE; // bad block;
Byte sig[2];
- RINOK(ReadStream(_stream, sig, 2, &processedSizeLoc));
- if(processedSizeLoc != 2)
- return S_FALSE;
+ RINOK(ReadStream_FALSE(_stream, sig, 2));
if (sig[0] != 0x43 || sig[1] != 0x4B)
return S_FALSE;
packSize2 -= 2;
@@ -154,9 +147,10 @@ HRESULT CCabBlockInStream::PreRead(UInt32 &packSize, UInt32 &unpackSize)
UInt32 curSize = packSize2;
if (curSize != 0)
{
- RINOK(ReadStream(_stream, _buffer + _size, curSize, &processedSizeLoc));
- checkSumCalc.Update(_buffer + _size, processedSizeLoc);
- _size += processedSizeLoc;
+ size_t processedSizeLoc = curSize;
+ RINOK(ReadStream(_stream, _buffer + _size, &processedSizeLoc));
+ checkSumCalc.Update(_buffer + _size, (UInt32)processedSizeLoc);
+ _size += (UInt32)processedSizeLoc;
if (processedSizeLoc != curSize)
return S_FALSE;
}