Skip to content

Commit 861e65a

Browse files
authored
Merge pull request #6378 from johnsilver97/Issue_18452
Fix Issue 18452 - std.zip has size limit of 2 GB
2 parents 6797808 + 0dc7ea2 commit 861e65a

File tree

1 file changed

+7
-7
lines changed

1 file changed

+7
-7
lines changed

std/zip.d

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -764,7 +764,7 @@ final class ZipArchive
764764
if (de.flags & 1)
765765
throw new ZipException("encryption not supported");
766766

767-
int i;
767+
uint i;
768768
i = de.offset + 30 + namelen + extralen;
769769
if (i + de.compressedSize > endrecOffset)
770770
throw new ZipException("invalid directory entry 5");
@@ -793,35 +793,35 @@ final class ZipArchive
793793

794794
/* ============ Utility =================== */
795795

796-
@safe @nogc pure nothrow ushort getUshort(int i)
796+
@safe @nogc pure nothrow ushort getUshort(uint i)
797797
{
798798
ubyte[2] result = data[i .. i + 2];
799799
return littleEndianToNative!ushort(result);
800800
}
801801

802-
@safe @nogc pure nothrow uint getUint(int i)
802+
@safe @nogc pure nothrow uint getUint(uint i)
803803
{
804804
ubyte[4] result = data[i .. i + 4];
805805
return littleEndianToNative!uint(result);
806806
}
807807

808-
@safe @nogc pure nothrow ulong getUlong(int i)
808+
@safe @nogc pure nothrow ulong getUlong(uint i)
809809
{
810810
ubyte[8] result = data[i .. i + 8];
811811
return littleEndianToNative!ulong(result);
812812
}
813813

814-
@safe @nogc pure nothrow void putUshort(int i, ushort us)
814+
@safe @nogc pure nothrow void putUshort(uint i, ushort us)
815815
{
816816
data[i .. i + 2] = nativeToLittleEndian(us);
817817
}
818818

819-
@safe @nogc pure nothrow void putUint(int i, uint ui)
819+
@safe @nogc pure nothrow void putUint(uint i, uint ui)
820820
{
821821
data[i .. i + 4] = nativeToLittleEndian(ui);
822822
}
823823

824-
@safe @nogc pure nothrow void putUlong(int i, ulong ul)
824+
@safe @nogc pure nothrow void putUlong(uint i, ulong ul)
825825
{
826826
data[i .. i + 8] = nativeToLittleEndian(ul);
827827
}

0 commit comments

Comments
 (0)