From fd9790cc36e7dfe5e1911c636717e50da467b484 Mon Sep 17 00:00:00 2001 From: coderb Date: Wed, 20 Dec 2017 14:15:20 -0500 Subject: [PATCH] unrar5: unpack wip --- .../Rar/UnpackV2017/Unpack.unpack50_cpp.cs | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/SharpCompress/Compressors/Rar/UnpackV2017/Unpack.unpack50_cpp.cs b/src/SharpCompress/Compressors/Rar/UnpackV2017/Unpack.unpack50_cpp.cs index 73fb3722..b5eda3de 100644 --- a/src/SharpCompress/Compressors/Rar/UnpackV2017/Unpack.unpack50_cpp.cs +++ b/src/SharpCompress/Compressors/Rar/UnpackV2017/Unpack.unpack50_cpp.cs @@ -249,7 +249,8 @@ bool UnpReadBuf() // is not less than CRYPT_BLOCK_SIZE, so we can align it without risk // to make it zero. if (DataSize>0) - memmove(Inp.InBuf,Inp.InBuf+Inp.InAddr,DataSize); + //x memmove(Inp.InBuf,Inp.InBuf+Inp.InAddr,DataSize); + Buffer.BlockCopy(Inp.InBuf, Inp.InAddr, Inp.InBuf, 0, DataSize); Inp.InAddr=0; ReadTop=DataSize; } @@ -532,15 +533,15 @@ void UnpWriteArea(size_t StartPtr,size_t EndPtr) else if (EndPtr=DestUnpSize) return; @@ -548,7 +549,7 @@ void UnpWriteData(byte *Data,size_t Size) int64 LeftToWrite=DestUnpSize-WrittenFileSize; if ((int64)WriteSize>LeftToWrite) WriteSize=(size_t)LeftToWrite; - UnpIO->UnpWrite(Data,WriteSize); + UnpIO->UnpWrite(Data, offset, WriteSize); WrittenFileSize+=Size; }