FIX: Use 64 bit seek

This commit is contained in:
Alexander Koblov 2020-10-25 21:18:41 +00:00
commit 44fc21750c
6 changed files with 19 additions and 19 deletions

View file

@ -139,20 +139,20 @@ begin
Result := atUnknown;
CurPos := Strm.Position;
Strm.Seek(0, soFromBeginning);
Strm.Seek(0, soBeginning);
try
if (Strm.Read(Hdr, SizeOf(Hdr)) = SizeOf(Hdr)) and VerifyHeader(Hdr) then begin
Result := atBzip2;
{ Check for embedded TAR }
Strm.Seek(0, soFromBeginning);
Strm.Seek(0, soBeginning);
DecompStream := TBZDecompressionStream.Create(Strm);
try
TarStream := TMemoryStream.Create;
try
DecompSize:= DecompStream.Read(Buffer, SizeOf(Buffer));
TarStream.Write(Buffer, DecompSize);
TarStream.Seek(0, soFromBeginning);
TarStream.Seek(0, soBeginning);
if VerifyTar(TarStream) = atTar then
Result := atBzippedTar;
finally

View file

@ -251,7 +251,7 @@ begin
FFakeCount -
(FBufEnd - FBuffer) +
(FBufPos - FBuffer) -
(FBitsLeft div 8), soFromBeginning);
(FBitsLeft div 8), soBeginning);
{free the buffer}
FreeMem(FBuffer);

View file

@ -382,7 +382,7 @@ begin
Result := atUnknown;
CurPos := Strm.Position;
try
Strm.Seek(0, soFromBeginning);
Strm.Seek(0, soBeginning);
{prepare for the try..finally}
Hlpr := nil;
@ -506,7 +506,7 @@ begin
Move(Buff, Result[Length(Result) - Len + 1], Len);
end;
if Len < DataRead then begin
AStream.Seek(Len - DataRead + 1, soFromCurrent);
AStream.Seek(Len - DataRead + 1, soCurrent);
Break;
end;
until DataRead = 0;
@ -516,7 +516,7 @@ procedure TAbGzipStreamHelper.SeekToItemData;
{find end of header data, including FileName etc.}
begin
{** Seek to Compressed Data **}
FStream.Seek(0, soFromBeginning);
FStream.Seek(0, soBeginning);
FItem.LoadGzHeaderFromStream(FStream);
end;
@ -542,13 +542,13 @@ var
DataRead : Integer;
begin
Result := False;
FStream.Seek(0, soFromBeginning);
FStream.Seek(0, soBeginning);
DataRead := FStream.Read(GZH, SizeOf(TAbGzHeader));
if (DataRead = SizeOf(TAbGzHeader)) and VerifyHeader(GZH) then begin
FItem.FGZHeader := GZH;
Result := True;
end;
FStream.Seek(0, soFromBeginning);
FStream.Seek(0, soBeginning);
end;
function TAbGzipStreamHelper.FindNextItem: Boolean;
@ -1072,7 +1072,7 @@ begin
if GzHelp.FindFirstItem then begin
Item := TAbGzipItem.Create;
Item.LoadGzHeaderFromStream(FGzStream);
FGzStream.Seek(-SizeOf(TAbGzTailRec), soFromEnd);
FGzStream.Seek(-SizeOf(TAbGzTailRec), soEnd);
GZHelp.ReadTail;
Item.CRC32 := GZHelp.TailCRC;
Item.UncompressedSize := GZHelp.TailSize;

View file

@ -122,7 +122,7 @@ begin
Result := atUnknown;
CurPos := Strm.Position;
Strm.Seek(0, soFromBeginning);
Strm.Seek(0, soBeginning);
try
if Strm.Read(Hdr, SizeOf(Hdr)) = SizeOf(Hdr) then
@ -143,7 +143,7 @@ begin
begin
Result := atLzma;
{ Check for embedded TAR }
TarStream.Seek(0, soFromBeginning);
TarStream.Seek(0, soBeginning);
if VerifyTar(TarStream) = atTar then
Result := atLzmaTar;
end;
@ -409,7 +409,7 @@ var
Header: TAbLzmaHeader;
Decoder: TLZMADecoder;
begin
FLzmaStream.Seek(0, soFromBeginning);
FLzmaStream.Seek(0, soBeginning);
if FLzmaStream.Read(Header, SizeOf(Header)) = SizeOf(Header) then
begin
Decoder := TLZMADecoder.Create;

View file

@ -133,19 +133,19 @@ begin
Result := atUnknown;
CurPos := Strm.Position;
Strm.Seek(0, soFromBeginning);
Strm.Seek(0, soBeginning);
try
if (Strm.Read(Hdr, SizeOf(Hdr)) = SizeOf(Hdr)) and VerifyHeader(Hdr) then begin
Result := atXz;
{ Check for embedded TAR }
Strm.Seek(0, soFromBeginning);
Strm.Seek(0, soBeginning);
TarStream := TMemoryStream.Create;
try
DecompStream := TLzmaDecompression.Create(Strm, TarStream);
try
DecompStream.Code(AB_TAR_RECORDSIZE * 4);
TarStream.Seek(0, soFromBeginning);
TarStream.Seek(0, soBeginning);
if VerifyTar(TarStream) = atTar then
Result := atXzippedTar;
finally

View file

@ -127,20 +127,20 @@ begin
Result := atUnknown;
CurPos := Strm.Position;
Strm.Seek(0, soFromBeginning);
Strm.Seek(0, soBeginning);
try
if (Strm.Read(Hdr, SizeOf(Hdr)) = SizeOf(Hdr)) and VerifyHeader(Hdr) then begin
Result := atZstd;
{ Check for embedded TAR }
Strm.Seek(0, soFromBeginning);
Strm.Seek(0, soBeginning);
DecompStream := TZSTDDecompressionStream.Create(Strm);
try
TarStream := TMemoryStream.Create;
try
DecompSize:= DecompStream.Read(Buffer, SizeOf(Buffer));
TarStream.Write(Buffer, DecompSize);
TarStream.Seek(0, soFromBeginning);
TarStream.Seek(0, soBeginning);
if VerifyTar(TarStream) = atTar then
Result := atZstdTar;
finally